我刚刚改变了我的模型......做了
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!我可以使用'normal'_form.html.erb创建和编辑帖子,但不能通过ActiveAdmin创建和编辑帖子。
我使用ActiveAdmin 0.3.2和formtastic 1.2.4。
有什么可能出错的建议吗?
谢谢
答案 0 :(得分: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