Я пытаюсь выяснить эту проблему отношений HABTM, чтобы сохранить ее в интересах пользователей моей базы данных. Таблица интересов содержит список различных интересов с идентификатором и именем (т.е. id = 1, name = 'Music')
У меня есть модель пользователя => user.rb
has_and_belongs_to_many :interests
и модель интересов => Interest.rb
has_and_belongs_to_many :users
Теперь я пытаюсь редактировать или обновлять выбор интересов пользователей из списка флажков.
Контроллер выглядит так =>
def edit
#@interests = Interest.find(:all)
@title = "Edit Interest"
@user = User.find(session[:user_id])
@user.interest ||= Interest.new
interest = @user.interest
if param_posted?(:interest)
if @user.interest.update_attributes(params[:interest])
flash[:notice] = "Changes saved."
redirect_to :controller => "users", :action => "index"
end
end
end
и функция param_posted выглядит следующим образом
def param_posted?(sym)
request.post? and params[sym]
end
Логика представления выглядит следующим образом:
<% for interest in @interest %>
<div>
<%= check_box_tag "user[interest_id][]", interest.id, @user.interests.include (interest) %>
<%= interest.name %>
</div>
<% end %>
Я думал, что все выглядит кошерно, но когда я запускаю представление, я получаю ошибку:
NoMethodError в InterestController # edit
- неопределенный метод "интереса" для # пользователя: 0x4797ddc
Нужно ли создавать отдельную модель / таблицу, которая связывает интерес пользователей к событиям?
как InterestsofUsers (id, user_id, интереса_ид)? Я думал, что отношения HABTM устранят необходимость в этом ...
Confused