4

我想fields_for在关联中的记录子集上使用。

我有一个Month模型,它has_many :payments

但在我看来,我只想获得fields_for其中的一些付款。例如:

- fields_for @month.payments.large

这行不通。

我可以将一组记录传递给fields_for,而不是通常的符号 ( fields_for :payments) 方法吗?

4

2 回答 2

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

我认为将这个逻辑封装在模型端是一种比视图更好的方法。

于 2010-09-02T05:26:54.030 回答
5

但是,您可以使用对象数组而无需创建任何其他关联。例如,假设您在控制器中准备了一些@large_payments 数组,那么在视图中您可以执行以下操作:

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

这样,如果您有一个相当大的表单或多页表单,并且您不想为要显示的每个组创建额外的关联,则不必这样做。

于 2013-06-12T07:18:08.247 回答