如何为多个记录创建form_for

时间:2011-11-16 14:00:04

标签: ruby-on-rails arrays

我的数据库中有成本和产品表,我希望以成本的形式获得所有产品的成本,然后将所有product_id,成本值保存到成本表中。

我的模特

class Cost < ActiveRecord
  belongs_to :test
end

class Product < ActiveRecord
  has_many :costs
end

这里我不知道更好的方法来创建表单的参数并将记录保存在表中。请帮帮我

1 个答案:

答案 0 :(得分:1)

我从你的协会开始 - 就是:测试协会应该是:产品?

http://guides.rubyonrails.org/association_basics.html

看看2.3节has_many协会。

class Cost < ActiveRecord
 belongs_to :product
end

class Product < ActiveRecord
 has_many :costs

 accepts_nested_attributes_for :costs, :reject_if => :all_blank, :allow_destroy => true
end

改为使用产品表单会更有意义吗?因此,产品索引操作只能用于列出所有产品。然后,Product表单可用于通过fields_for标记和accepts_nested_attributes_for:产品模型中的成本来处理多个成本。

编辑: 所以继续你的评论,你正在看这种模式吗?

class Customer < ActiveRecord
  has_many :costs
  has_many :products, :through => :costs

  accepts_nested_attributes_for :costs, :reject_if => :all_blank, :allow_destroy => true
end

class Cost < ActiveRecord
  belongs_to :customer
  belongs_to :product
end

class Product < ActiveRecord
  has_many :costs
  has_many :customers, :through => :costs

  accepts_nested_attributes_for :costs, :reject_if => :all_blank, :allow_destroy => true
end