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!'normal' _form.html.erb ...を使用して投稿を作成および編集できますが、ActiveAdminを使用することはできません。

ActiveAdmin0.3.2とformtastic1.2.4を使用しています。

何が間違っている可能性があるかについての提案はありますか?

ありがとう

4

1 に答える 1

2

発生するエラーはActiveAdminに関連するものではありませんが、Formtastic(Active Adminが素敵なフォームを作成するために使用するgem)から発生します。これは、モデル属性の1つでカスタムデータ型を使用していることが原因である可能性があります。

ActiveAdmin.registerブロック内のフォームを(直接または部分的に)オーバーライドしようとします。これを行うには、各属性を手動で指定してから、各フィールドを一度に1つずつコメントアウトします。毎回ページをリロードして、エラーが消えたかどうかを確認しました。エラーが消える2番目のフィールドで問題が発生していることがわかります。次に、:as => :stringFormtasticにその特定の入力タイプを使用させるために、(または他の適切な入力タイプを)追加します。

例の前:

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 に答える