我通过多对多关联有三个表:超市、产品和供应。
每个超市可以存放多种产品,每种产品可以在多个超市销售。该关联是通过供应模型建立的。
超级市场:
class Supermarket < ActiveRecord::Base
attr_accessible :name, :address, :products_attributes
has_many :supplies
has_many :products, :through => :supplies
accepts_nested_attributes_for :products
end
Product:
class Product < ActiveRecord::Base
attr_accessible :name, :supermarkets_attributes
has_many :supplies
has_many :supermarkets, :through => :supplies
accepts_nested_attributes_for :supermarkets
end
通过供应关联:
class Supply < ActiveRecord::Base
attr_accessible :supermarket_id, :product_id
belongs_to :supermarket
belongs_to :product
end
我已经创建了脚手架并填充了超市表格。
在我的产品表单中,我想使用一个(或多个)下拉菜单来选择相应的超市名称。目标是创建新产品,同时通过供应表创建关联。
如果我想从那里选择相应的超市,产品的表单和/或控制器中的代码应该是什么样子?
在您的产品表单中,您需要添加此行...
<%= collection_select(:product, :supermarket_ids, SuperMarket.all, :id, :name, {}, { :multiple => true } )%>
您也不应该为此使用accepts_nested_attributes,您已经设置的多对多关联应该处理其余的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)