我想对关联中的记录子集使用fields_for
。
我有一个Month
模型,has_many :payments
。
但在我看来,我只希望fields_for
部分付款。例如:
- fields_for @month.payments.large
这不起作用。
我可以将一组记录传递给fields_for
,而不是通常的符号(fields_for :payments
)方法吗?
答案 0 :(得分:5)
您可以为大额付款添加其他关联,例如:
class Month < ActiveRecord::Base
has_many :payments
has_many :large_payments, :class_name => "Payment", :conditions => "value > 1000000"
end
之后,您可以通常使用fields_for
:
- fields_for :large_payments
我认为在模型方面封装这个逻辑是一种更好的方法,然后在视图中。
答案 1 :(得分:5)
但是,您可以使用对象数组而无需创建任何其他关联。例如,假设您在控制器中准备了一些@large_payments数组,然后在视图中可以执行以下操作:
<%= f.fields_for :payments, @large_payments do |payment| %> ...
这样,如果你有一个非常大的表单或多个表单页面,并且你不想为你想要显示的每个组创建一个额外的关联,你不必。 / p>