许多和许多habtm复选框需要帮助!

时间:2011-07-06 07:37:18

标签: ruby ruby-on-rails-3

由于某些原因,我的groups_user表中没有存储任何信息。

我的模特

group.rb

class Group < ActiveRecord::Base
  has_and_belongs_to_many :users
end

user.rb

class User < ActiveRecord::Base
  has_and_belongs_to_many :groups
end

groups_user.rb

class GroupsUser < ActiveRecord::Base
end

实体关系图

http://i.imgur.com/MqWok.png

表格

http://i.imgur.com/BwwaV.png

观看代码

<% for group in @groups %>
    <%= check_box_tag "user[group_ids][]", group.id, @user.groups.include?(group) %>
    <%= group.description %>
    <% end %>

users_controller.rb

def update 
  @user = User.find(params[:id]) 
  params[:user][:group_ids] ||= [] 
  if @user.update_attributes(params[:user]) flash[:success] = "User updated." 
    redirect_to @user #end 
  else 
    @title = "Edit user" 
    render 'edit' 
  end 
end

2 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,我的脑袋一扫而光:

我的解决方案只是将其添加到我的用户模型(app / models / user.rb)

class User < ActiveRecord::Base
    attr_accessible :group_ids
    [...]
end

希望这有帮助!

答案 1 :(得分:2)

它应该是groups_users而不是groups_user,您不必为此表创建模型