2011-07-13 33 views
0

我有一个很简单的问题:质量分配选择孩子的,使用设计

用户模式:

class User < ActiveRecord::Base 
    devise :database_authenticatable, 
     :recoverable, :rememberable, :trackable, :validatable 

    attr_accessible :id, :email, :password, :password_confirmation, :remember_me, 
    :firstname, :lastname, :mobile_phone, :user_type, :department_id, :department_attributes 

    belongs_to :department 

    accepts_nested_attributes_for :department, :allow_destroy => false 

系车型:

class Department < ActiveRecord::Base 

    has_many :users 

    accepts_nested_attributes_for :users, :allow_destroy => true 

我创建了一个表格,以便能够使用simple_form从我的现有用户中选择我的部门成员:

<%= simple_form_for @department, :validate => true do |form| %> 

    <%= form.error_messages %> 
    <%= form.association :users, :prompt => 'assign a user', :label => 'User'%> 
    <%= form.button :submit %> 

<% end %> 

然后我通过部门控制器(尝试)更新我的用户:

def update 
    @department = Department.find(params[:id]) 

    respond_to do |format| 
     if @department.update_attributes(params[:department]) 
     ... 

这会产生以下错误:

WARNING: Can't mass-assign protected attributes: user_ids 

我的猜测是,一些设计的设置产生这个错误,但我不知道哪些。

你能帮忙吗?谢谢!

回答

2

attr_accessible :user_ids添加到您的部门模型。

+0

Wouaw,这是诀窍!我被阻止了两个小时,在用户而不是部门中寻找原因。非常感谢! – ndemoreau