Как передать массив fields_for в Rails? - PullRequest
4 голосов
/ 02 сентября 2010

Я хочу использовать fields_for для подмножества записей в ассоциации.

У меня есть Month модель, которая has_many :payments.

Но в моем виде, на мой взгляд, я хочу fields_for только некоторые из этих платежей. Например:

- fields_for @month.payments.large

Это не работает.

Могу ли я передать набор записей в fields_for вместо обычного подхода к символам (fields_for :payments)?

Ответы [ 2 ]

5 голосов
/ 12 июня 2013

Однако вы можете использовать массив объектов без необходимости создавать какие-либо дополнительные ассоциации.Например, предположим, что в вашем контроллере вы подготовили некоторый массив @large_payments, а затем в представлении вы можете сделать следующее:

<%= f.fields_for :payments, @large_payments do |payment| %> ...

Таким образом, если у вас довольно большая форма или несколько страницформ, и вам не нужно создавать дополнительную связь для каждой группы, которую вы хотите отобразить, вам не нужно.

5 голосов
/ 02 сентября 2010

Вы можете добавить дополнительную ассоциацию для крупных платежей, например:

class Month < ActiveRecord::Base
  has_many :payments
  has_many :large_payments, :class_name => "Payment", :conditions => "value > 1000000"
end

После этого вы можете использовать fields_for обычным способом:

- fields_for :large_payments

Я думаю, что это можно заключитьлогика на стороне модели - лучший подход, чем в представлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...