2017-01-08 1 views
0

私のエンジンのモデルをアクティブな管理者のメインアプリケーションで使用するために、wikiのガイドに従っています。ActiveAdmin:他のエンジンのモデルを読み込んで使用できません。

if defined?(ActiveAdmin) 
    ActiveAdmin.register Blog::Category do 
    end 
end 

私はちょうど追加:私は変更する必要があります

唯一のことは(それはウィキで言及されません)これをしたBlog::。 私のエンジンである "Blog"には、 "category"という名前のモデルが追加されました:string属性。しかし、アクティブな管理者を追加すると、フィールド名はデータベースに保存されませんでした。私のリクエストパラメータは以下の通りです:

{"utf8"=>"✓", "authenticity_token"=>"PzKDTcoJZ6Sy2tXgw9WSwXiR7aZp81lOtBvfD5Ec3F72H5L7MEMLjlOFgKWQBo2U4n9mPc7AgjcIS3MTIY2nZA==", "category"=>{"name"=>"asdasd"}, "commit"=>"Update Category", "id"=>"1"} 

なぜdatabseに保存されないのですか? 新しいレコードを作成すると、レコードは作成されますが、入力はありません。

答えて

1

同じ問題が発生しました。私は正確にデフォルトの場合には何が起こっているのかはまだわからないんだけど、この

ActiveAdmin.register Blog::Category do 

    permit_params :the, :parameters, :for, :your, :resource 

    controller do 
    def create 
     @category = Blog::Category.new permitted_params[:category] 
     if @category.save 
     notice = 'Category was successfully created.' 
     redirect_to admin_blog_category_url(@category), notice: notice 
     else 
     render :new 
     end 
    end 
    end 
end 

のような(例えばアプリ/管理/ category.rb中)activeadminコントローラのアクションをオーバーライドすることにより、適切に保存するためのリソースを取得することができましたしかし、私の推測では、activeadminコントローラのアクションは正しい名前空間にオブジェクトを作成していないということです。つまり、@category = Blog::Category.newではなく@category = Category.newのようになります。同じようなオーバーライドも同様に、アクションのために必要であると思われます。:update

+0

なぜ検証が機能しないのでしょうか? Admin :: BlogDocumentsController#create'の中に 'ActiveRecord :: RecordNotFound 'を常に持っていきます。私はAAが私の検証をスキップしていると思う.. – Evolutio

関連する問題