无法用params进行质量分配错误

时间:2013-05-07 18:29:33

标签: ruby-on-rails

我有以下代码:

控制器

def update
  @group = Group.find(params[:id])
  @group_func = @group.functionalities
  @functionalities_all = Funcionalidade.all
  @func = params[:group][:update]

  unless @group_func.include?(@func) do
    @group_func << @func
  end
end

查看

<div class="field">
    <% options = @functionalities_all.collect{|f| [f.name, f.id]} %>
    <%= f.select(:update, options, { :include_blank => true, :selected => nil}) %>
    <%= button_to "Add" %>
</div>

当我向Rails组添加功能时,返回以下错误:

  

ActiveModel :: MassAssignmentSecurity :: GruposController中的错误#update

     

无法批量分配受保护的属性:更新

如果我尝试添加:更新到Model返回此错误:

  

未知属性:更新

有没有人遇到过类似的错误?

1 个答案:

答案 0 :(得分:0)

在您的群组模型中,添加以下代码。

attr_accessible :update

Rails自然会保护属性不被分配而不会首先受到不受保护。 attr_accessible取消保护它们,以便您可以在控制器中修改它们。如果您希望所有属性都可修改,请将attr_protected添加到模型中。