2011-01-05 2 views
0

У меня есть две модели: События и интересы, связанные с миграцией таблицы соединений EventsInterests (event_id, interest_id, id => false).Rails - Подключение флажков для изменения значений для таблицы соединений

Я пытался создать что-то, где вы могли бы связать набор категорий интересов с некоторыми событиями в моем приложении.

Я создал запись непосредственно в базе данных и ее отображение правильно, поэтому я уверен, что флажок правильно; но я не могу отредактировать запись вообще. Если я добавлю еще один интерес через флажок, ничего не произойдет. Я не получаю никаких ошибок, и журнал показывает, что он вызывает таблицу соединений, поэтому я предполагаю, что проблема связана с моим заявлением о обновлении .....

Im думая что-то с attr_accessible частью, но я не знаю, как добавить это для таблицы join .... я просто удаляю его?

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 

ответ