1

我刚刚改变了我的模型......通过做

rails g migration remove_XXX_from_YYY XXX:string

接着

rails g migration add_AAA_to_YYY AAA:content

现在我正在尝试转到活动管理页面并呈现“编辑:操作..但我收到错误消息:

显示 ..../activeadmin-0.3.2/app/views/active_admin/resource/edit.html.arb 其中第 1 行提出:

undefined method `_input' for #<ActiveAdmin::FormBuilder:0xf859210>


Extracted source (around line #1):

1: render renderer_for(:edit)

应用程序跟踪:

app/admin/posts.rb:9:in `block (3 levels) in <top (required)>'
app/admin/posts.rb:4:in `block (2 levels) in <top (required)>'

我在“新”操作中遇到同样的错误。除了:1: render renderer_for(:new)

ActiveAdmin 的所有其他操作都有效。(显示、索引、删除)。

OBS!我可以使用“普通”_form.html.erb 创建和编辑帖子......但不能通过 ActiveAdmin..

我使用 ActiveAdmin 0.3.2 和 formtastic 1.2.4。

有什么可能出错的建议吗?

谢谢

4

1 回答 1

2

您收到的错误与 Active Admin 无关,而是来自 Formtastic(Active Admin 用于构建漂亮表单的 gem)。这可能是因为您在模型属性之一上使用了自定义数据类型。

我会尝试覆盖 ActiveAdmin.register 块内的表单(直接或通过部分)。我会通过手动指定每个属性然后一次注释掉每个字段来做到这一点。每次我都会重新加载页面以查看错误是否消失。错误消失的第二个我知道是哪个字段导致了问题。然后我会添加:as => :string(或任何其他合适的输入类型)以强制 Formtastic 使用该特定输入类型。

在示例之前:

ActiveAdmin.register User do
  form do |f|
    f.inputs do
      f.input :name
      f.input :email
      f.input :birthday
      f.input :foobar
    end
    f.buttons
  end
end

示例后:

ActiveAdmin.register User do
  form do |f|
    f.inputs do
      f.input :name
      f.input :email
      f.input :birthday
      f.input :foobar, :as => :string
    end
    f.buttons
  end
end
于 2011-10-10T08:31:48.173 回答