我有兩個模型事件和興趣通過連接表遷移EventsInterests(event_id,interest_id,id => false)連接。Rails - 連接複選框以更改連接表的值
我試圖創建一些東西,可以將一組興趣類別連接到我的應用中的某些事件。
我在數據庫中直接創建了一條記錄,並且它正確顯示,所以我很確定複選框部分是正確的;但我根本不能編輯記錄。如果我通過複選框添加另一個興趣,沒有任何反應..沒有得到任何錯誤和日誌顯示它調用連接表,所以我猜這個問題是與我的更新聲明.....
Im思考它與attr_accessible部分的東西,但我不知道如何添加一個連接表....我只是刪除它?
events.rb
has_and_belongs_to_many :interests
attr_accessible :name, :category
interests.rb
has_and_belongs_to_many :events
在我的編輯形式,我想記錄添加到連接表它看起來像這樣。
<%= form_for @event do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :title %><br />
<%= f.text_field :title %>
</p>
<% for interest in @interests %>
<div>
<%= check_box_tag "event[interest_ids][]", interest.id, @event.interests.include?(interest) %>
<%= interest.name %>
</div>
<% end %>
<p><%= f.submit %></p>
,並在控制器編輯/更新部分看起來像
def update
@event = Event.find(params[:id])
params[:event][:interest_ids] ||= []
if @event.update_attributes(params[:event])
flash[:notice] = "Successfully updated event."
redirect_to @event
else
render :action => 'edit'
end
end