我尝试创建一个家具对象,它与 has_many_and_belongs_to 与商店相关,这是我的模型:
class Furniture < ActiveRecord::Base
attr_accessible :area, :description, :name, :size
has_and_belongs_to_many :stores
end
我的问题是我不知道如何创建新家具,因为我尝试将家具与一个或多个带有复选框的商店相关联,但我收到此错误:undefined method merge for #<Store:0x007ff16ae27e40>
。
这些是我的表单视图和我的控制器的新建和创建操作:
查看:
<%= form_for @furniture do |f| %>
<%= f.label :name %>
<%= f.text_field :name %> <br><br>
<%= f.label :description %>
<%= f.text_field :description %> <br><br>
<%= f.label :size %>
<%= f.text_field :size %> <br><br>
<% @store.each do |store| %>
<div>
<%= f.check_box :stores, store %>
<%= store.name %>
</div>
<% end %>
<%= f.submit %>
<% end %>
控制器:
def new
@furniture = Furniture.new
@store = Store.order('name ASC')
end
def create
@furniture = Furniture.create(params[:furniture])
redirect_to admins_path
end
我该如何解决?你有什么建议用这个关系创建一个新对象吗?
非常感谢你
编辑:我在家具和商店之间有一个连接表