Ruby on rails 如何创建与多对多相关的模型的新实例?
我尝试创建一个家具对象,它与一个has_many_和_所属的商店有关,这是我的模型:Ruby on rails 如何创建与多对多相关的模型的新实例?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我尝试创建一个家具对象,它与一个has_many_和_所属的商店有关,这是我的模型: class Furniture < ActiveRecord::Base attr_accessible :area, :description, :name, :size has_and_belongs_to_many :stores end 我怎样才能解决它??你有什么建议来创建一个具有这种关系的新对象吗 多谢各位 编辑: 我在家具和商店之间有一个联接表has_和_belown_to_关联
class Furniture < ActiveRecord::Base
attr_accessible :area, :description, :name, :size
has_and_belongs_to_many :stores
end
我怎样才能解决它??你有什么建议来创建一个具有这种关系的新对象吗
多谢各位
编辑:
我在家具和商店之间有一个联接表has_和_belown_to_关联添加了一个方法
collection_singular_id=
,对于当前情况,该方法将是@furniture.store_id=
。根据文件
collection_singular_ids=方法通过适当地添加和删除,使集合仅包含由提供的主键值标识的对象
所以,你可以用这个想法来增加你的家具商店。替换
<% @store.each do |store| %>
<div>
<%= f.check_box :stores, store %>
<%= store.name %>
</div>
<% end %>
与
true},store.id,nil%>
stacktrace。另外,我不确定我是否理解您的问题,但您可以使用@furniture.stores.build
创建商店
的新实例。我想创建一个新家具,并从形式上获取它的所有值,而不是我想为新家具分配一些商店。我使用chcekbox选择了一些商店,但无法将商店分配给家具。我尝试过,但现在出现了以下错误:无法批量分配受保护的属性:商店ID
。我将:商店ID
添加到家具控制器中的可访问属性,以解决上一个错误,现在它可以工作了。。谢谢
def new
@furniture = Furniture.new
@store = Store.order('name ASC')
end
def create
@furniture = Furniture.create(params[:furniture])
redirect_to admins_path
end
<% @store.each do |store| %>
<div>
<%= f.check_box :stores, store %>
<%= store.name %>
</div>
<% end %>
<% @store.each do |store| %>
<div>
<%= f.check_box :store_ids, {:multiple => true}, store.id, nil %>
<%= store.name %>
</div>
<% end %>