2
我是第一個自己的項目的rails noob。Rails:通過form_for check_box爲HABTM關係分配多個參數
我使用has_and_belongs_to_many關係鏈接了兩個模型:Wine和Shop。爲了簡單起見,葡萄酒可以在不同的商店出售,特定的商店可以出售許多不同的葡萄酒。下面是型號:
class Shop < ActiveRecord::Base
has_and_belongs_to_many :wines
end
class Wine < ActiveRecord::Base
has_and_belongs_to_many :shops
end
我的目標是做一個形式,創造酒的情況下,包括在酒可以購買的商店。這裏是我的wines_controller:
def new
@wine = wine.new
@shops = Shop.all
respond_to do |format|
format.html # new.html.erb
format.json { render json: @wine }
end
end
def create
@wine = Wine.new(params[:wine])
params[:shops].each do |id|
@wine.shops << Shop.find(id)
end
end
這裏是新的視圖渲染我_form觀點:
<% @shops.each do |t| %>
<%= f.label t.name %>
<%= f.check_box :shops, t.id %>
<% end %>
我試過很多東西,花了幾個小時就這一點,但無法找到解決方案。別的不說我看了一下這些問題,但我無法得到它的工作:
- Rails create form for model with many to many relation
- update values of checkbox with HABTM relationship -- Rails
- Creating multiple records in a HABTM relationship using a collection_select - Rails
最後我得到了一個
undefined method `merge' for 3:Fixnum
只要讓我知道你是否需要任何其他細節來處理t他的問題,還是已經有一個關於我已經錯過的問題。
在此先感謝
您還可以簡化您crreate方法:'@wine = Wine.new(PARAMS [:酒]) @ wine.shops << Shop.find(params [:shops]) end' – BroiSatse
我仍然得到'未定義的方法'合併'3:Fixnum',其中3是一個sh的id op – SBfrr
@SBfrr,更新了我的回答 – Santhosh