首页 文章

嵌套表单触发'Can' t质量分配受保护属性警告

提问于
浏览
14

我有一个多层嵌套表单

User->Tasks->Prerequisites

并以相同的形式

User->Tasks->Location

位置表单工作正常,现在我正在尝试指定当前任务的先决条件 . 先决条件是存储在:completed_task字段中的task_id .

当我提交表单时,我在输出中收到以下错误

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

对用户中的每个任务发出一个警告 .

我已经完成了与此相关的所有其他问题,确保正确引用字段名称:completed_task,

将attr_accessible添加到我的模型中(它已经存在并且我扩展了它) .

我不确定我应该做什么 .

我的模特看起来像

class Task < ActiveRecord::Base
     attr_accessible :user_id, :date, :description, :location_id

     belongs_to :user
     has_one :location
     accepts_nested_attributes_for :location 
     has_many :prerequisites
     accepts_nested_attributes_for :prerequisites
end

class Prerequisite < ActiveRecord::Base
     attr_accessible :completed_task

     belongs_to :task
end

表格使用formtastic,我包括表格via

<%= f.semantic_fields_for :prerequisites do |builder3| %>
    <%= render 'prerequisite_fields', :f=>builder3 %>
<% end %>

--- _prerequisite_fields.html.erb -----
< div class="nested-fields" >
   <%= f. inputs:completed_step %>
</div>

有什么建议?

1 回答

  • 26

    将:prerequisite_attributes添加到attr_accessible以进行批量分配

    attr_accessible :user_id, :date, :description, :location_id, :prerequisite_attributes

    应该让你开始 .

相关问题