ruby-on-rails – 嵌套形式触发“无法质量分配受保护的属性警告”

我有一个多层嵌套表单
User->Tasks->Prerequisites 

并以相同的形式

User->Tasks->Location

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

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

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,我包括表单通过

<%= 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>

有什么建议么?

解决方法

添加:prerequisite_attributes to attr_accessible以进行质量分配

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

应该让你开始

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...