【问题标题】:nested form triggering a 'Can't mass-assign protected attributes warning嵌套表单触发“无法批量分配受保护的属性”警告
【发布时间】:2011-06-29 13:32:07
【问题描述】:

我有一个多层嵌套表单

用户->任务->先决条件

并以相同的形式

用户->任务->位置

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

当我提交表单时,输出中出现以下错误

警告:无法批量分配受保护的属性:prerequisite_attributes

用户中的每个任务都有一个警告。

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

将 attr_accessible 添加到我的模型中(它已经存在并且我对其进行了扩展)。

我不确定我还应该做什么。

我的模型看起来像

类任务

表单使用了formtastic,我将表单通过

builder3 %> --- _prerequisite_fields.html.erb -----

有什么建议吗?

标签: ruby-on-rails nested-forms mass-assignment


【解决方案1】:

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

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

应该让你开始。

【讨论】:

  • 是的,做到了。这是推荐的方式吗?在我的其他嵌套形式中,我似乎不需要这个。以前我已将 :prerequisites_attributes 添加到先决条件模型中,我想这是我的错误
  • 是的,只要您以这种方式在表单中嵌套了资源,您就可以将参数作为 resource_attributes 的哈希值传递。根据定义,这是批量分配它,因此您必须将其包含在 attr_accessible 中。
猜你喜欢
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 2012-09-05
相关资源
最近更新 更多