2011-07-06 37 views
4

由於某些原因,我的groups_user表中沒有任何內容存儲在信息中。多對多和habtm複選框幫助需要!

我的模型

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_usersgroups_user,你不必爲這個表

+0

':group_ids'不'':groups_ids' – Bohdan

+0

惡魔的細節) – Bohdan

3

我有同樣的問題建立模型並把它帶到我的頭吹斷:

對我來說,溶液只需添加到這一點我的用戶模型(應用程序/models/user.rb)

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

希望這有助於!

+0

它確實沒有! :) – Philip