Rails Active Admin 不允许的参数

Rails Active Admin unpermitted parameter

我有一些 problem/issues 在 rails 上有活跃的管理员,特别是不允许的参数错误:

existing active admin parameter

这是现有的活动管理参数

model associated with the main model im working with

根据有效的管理员文档,我应该做对了,因为 dispatch_information 模型的其他属性已被 rails 接受,并且我能够毫无问题地进行读写。就用这个最近添加的属性“custom_attorney”。协会已经成立。并且没有在模型文件上声明 attr_accessor 它说这个错误

No method error

它似乎无法读取或检测到我为 dispatch_information 模型添加的列,而在我的控制台中它已经存在。

当我用 attr_accessor 添加它时“虽然它不应该,只是为了在表单页面上继续”然后我填写了需要的属性,我的控制台中出现了奇怪的东西

Console view

正如你所看到的,它似乎被添加到 efile_order 哈希而不是 dispatch_information_attribute 哈希中,并且在图像的底部你可以看到它说不允许的参数,即使我添加了它在正确的属性块中,我们还可以注意到其他属性 pf dispatch_information 工作得很好,只是这个最近添加的 custom_attorney 属性。我已经做了所有事情,比如迁移和其他事情。

Form Input

这是我的表单,我们可以看到输入位于包含 dispatch_defendant 和 dispatch_plaintiff 的同一块上,这两个属性也可以正常工作。

我真的不知道我在这里错过了什么。 TIA

问题是 custom_attorney 应该嵌套在 dispatch_information_attributes 下,你把它放在错误的地方所以它是不允许的。

正确的做法是为这些属性添加一个块并嵌套它们。

- f.simple_fields_for :dispatch_information do |d|
  - d.input :custom_attorney, :input_html => { id: 'new-attorney' }

如果您关心现有数据,为 dispatch_information 提供一个对象可能是个好主意。假设你的 ivar 被命名为 @e_filling_order 那么你应该有以下内容。

- f.simple_fields_for :dispatch_information, @e_filling_order.dispatch_information || @e_filling_order.build_dispatch_information do |d|