有 has_many 问题的 ActiveAdmin;未定义的方法'new_record?'

Posted

技术标签:

【中文标题】有 has_many 问题的 ActiveAdmin;未定义的方法\'new_record?\'【英文标题】:ActiveAdmin with has_many problem; undefined method 'new_record?'有 has_many 问题的 ActiveAdmin;未定义的方法'new_record?' 【发布时间】:2011-11-04 14:42:47 【问题描述】:

我正在尝试为与 Step 具有 has_many 关系的 Recipe 模型自定义 ActiveAdmin 表单。

class Recipe < ActiveRecord::Base
  has_many :steps
end

class Step < ActiveRecord::Base
  acts_as_list :scope => :recipe

  belongs_to :recipe
end

我的 ActiveAdmin 文件中有以下与此相关的内容:

form do |f|
  f.has_many :steps do |ing_f|
    ing_f.inputs
  end
end

当我尝试加载表单时抛出以下错误:

未定义的方法`new_record?'对于 nil:NilClass

到目前为止,我已经将它隔离到 has_many 方法,但我已经失去了这个。任何建议和帮助将不胜感激!

【问题讨论】:

【参考方案1】:

转到您的食谱模型并添加以下行

accepts_nested_attributes_for :steps

formtastic 需要该行,而不是活动管理员。检查https://github.com/justinfrench/formtastic 以获取格式文档

【讨论】:

【参考方案2】:
class Recipe < ActiveRecord::Base

    attr_accessible :step_attributes

    has_many :steps

    accepts_nested_attributes_for :steps

end

【讨论】:

以上是关于有 has_many 问题的 ActiveAdmin;未定义的方法'new_record?'的主要内容,如果未能解决你的问题,请参考以下文章

使用 has_many 关系保存记录

在 has_many 上具有条件的 CakePHP 分页

如何修改依赖::destroy 查询 has_many 关系

formtastic - 表单字段中带有 has_many 的对象数组

通过同一模型的两个 has_many 关系

has_many的Rails组合框问题:通过关系