2011-07-06 14 views
4

何らかの理由で、何も私のgroups_userテーブルに格納されていません。情報は以下のとおりです。多対多およびhabtm-checkboxesが必要です。

マイモデル

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

はであるべきですないgroups_user、あなたはこのテーブルのため

+0

':group_ids'ではなく':groups_ids' – Bohdan

+0

悪魔詳細 – Bohdan

3

をモデルを作成する必要はありません、私は同じ問題を抱えていたし、それが吹き飛ばす私の頭を取る:

私のためのソリューションは、単に私のユーザーモデル(アプリにこれを追加しました/models/user.rb)

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

+0

確かにしました! :) – Philip

関連する問題