我想fields_for
在关联中的记录子集上使用。
我有一个Month
模型,它has_many :payments
。
但在我看来,我只想获得fields_for
其中的一些付款。例如:
- fields_for @month.payments.large
这行不通。
我可以将一组记录传递给fields_for
,而不是通常的符号 ( fields_for :payments
) 方法吗?
我想fields_for
在关联中的记录子集上使用。
我有一个Month
模型,它has_many :payments
。
但在我看来,我只想获得fields_for
其中的一些付款。例如:
- 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| %> ...
这样,如果您有一个相当大的表单或多页表单,并且您不想为要显示的每个组创建额外的关联,则不必这样做。