Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何创建与多对多相关的模型的新实例?_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 如何创建与多对多相关的模型的新实例?

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_关联

我尝试创建一个家具对象,它与一个has_many_和_所属的商店有关,这是我的模型:

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 %>