簡體   English   中英

使用ActiveAdmin的Rails Engine中的資源名稱空間問題

[英]Resource namespace Issue in Rails Engine with ActiveAdmin

我在ActiveAdmin中成功注冊資源時遇到問題,但是無法創建或更新任何記錄。 我認為這是由於命名空間問題引起的。 注冊資源時可以使用選項覆蓋它嗎?

我正在構建一個Rails引擎,該引擎從引擎內部注冊AA資源。 我按照這里的指示進行。

我的引擎包含lib / admin / myengine / myresources.rb

if defined?(ActiveAdmin)
  ActiveAdmin.register Myengine::Myresource do
  end
end

在測試/虛擬應用程序中,相關架構如下所示:

create_table "myengine_myresources", force: :cascade do |t|
  t.string   "name"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
end

運行虛擬應用服務器時,我成功導航到http:// localhost:3000 / admin / myengine_myresources並單擊“新建Myengine Myresource”

我輸入一個名稱,然后單擊“創建Myresource”,但是它將請求視為已提交空白屬性值。

服務器日志顯示:

Started POST "/admin/myengine_myresources" for ::1 at 2015-12-02 11:13:52 -0800
Processing by Admin::MyengineMyresourcesController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"stuff", "myresource"=>{"name"=>"Arbitrary Name"}, "commit"=>"Create Myresource"}
   (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
  Rendered /Users/me/.rvm/gems/ruby-2.2.3/gems/activeadmin-1.0.0.pre2/app/views/active_admin/resource/new.html.arb (190.7ms)
Completed 200 OK in 231ms (Views: 199.4ms | ActiveRecord: 0.2ms)

我的工作原理是,參數必須位於:myengine_myresource內部,而不僅僅是:myresource。

關於如何使它正常工作的任何想法?

這是一種解決方法:

if defined?(ActiveAdmin)
  ActiveAdmin.register Myengine::Myeresource do
    controller do
      def permitted_params
        params[:myengine_myresource] = params.delete :myresource
        params.permit(myengine_myresource: [:my, :list, :of, :accepted, :params])
      end
    end
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM