批量分配,选择用户的子节点,使用设计



我有一个很简单的问题:

用户模式:

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

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

你能帮忙吗?谢谢!

attr_accessible :user_ids添加到您的Department模型中。

最新更新