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