我试图找出这个HABTM关系问题以存储在我的数据库中的用户的利益。利益表有标识和名称不同利益的名单(即:ID = 1,名称=“音乐”)Rails - HABTM关系...存储来自用户的复选框值
我有一个用户模式=> user.rb
has_and_belongs_to_many :interests
和利益model => 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#编辑 - 未定义的方法`兴趣'为#用户:0x4797ddc
我需要创建一个单独的模型/表连接用户的兴趣事件? Like InterestsofUsers(id,user_id,interest_id)?我以为HABTM关系将不再需要为...
困惑
我想,这真的只是总结点换点的答案,我给了一个小时前。 – 2010-01-30 02:26:46
是的,用更少的话说... 并不意味着以任何方式踩你的观点,只是为了总结... – Devenv 2010-01-30 03:34:24