1

users私は、複数のエンジンを備えたレールアプリを持っていますcompanies, など.

#main_app: /config/routes.rb
Rails.application.routes.draw do
  mount RailsAdmin::Engine, at: 'admin', as: 'rails_admin'
  mount Users::Engine, at: "users", as: "users"
  mount Companies::Engine, at: "companies", as: "companies"
  ...
end

rails_adminmain_app と各エンジンからも構成を作成したいと思います。

#main_app: /config/initializers/rails_admin.rb
RailsAdmin.config do |config|
  config.authorize_with :cancan
  ...
end

この場合、すべて正常に動作します。

$ rake routes
...
Routes for RailsAdmin::Engine:
    dashboard GET         /                                      rails_admin/main#dashboard
        index GET|POST    /:model_name(.:format)                 rails_admin/main#index
          new GET|POST    /:model_name/new(.:format)             rails_admin/main#new
       export GET|POST    /:model_name/export(.:format)          rails_admin/main#export
  bulk_delete POST|DELETE /:model_name/bulk_delete(.:format)     rails_admin/main#bulk_delete
history_index GET         /:model_name/history(.:format)         rails_admin/main#history_index
  bulk_action POST        /:model_name/bulk_action(.:format)     rails_admin/main#bulk_action
         show GET         /:model_name/:id(.:format)             rails_admin/main#show
         edit GET|PUT     /:model_name/:id/edit(.:format)        rails_admin/main#edit
       delete GET|DELETE  /:model_name/:id/delete(.:format)      rails_admin/main#delete
 history_show GET         /:model_name/:id/history(.:format)     rails_admin/main#history_show
  show_in_app GET         /:model_name/:id/show_in_app(.:format) rails_admin/main#show_in_app

しかし、エンジンから追加の構成を送信しようとしているとき:

#users_engine: /config/initializers/rails_admin.rb
RailsAdmin.config do |config|
  config.excluded_models  << "Users::Phones::ConfirmAttempt"

  config.actions do
    new do
      except ["Users::User"]
    end
  end
  ...
end

ルートに奇妙なものがあり、rails_adminブラウザからアクセスできません:

$ rake routes
...
Routes for RailsAdmin::Engine:
        new GET|POST /:model_name/new(.:format)         rails_admin/main#new
bulk_action POST     /:model_name/bulk_action(.:format) rails_admin/main#bulk_action

誰かが私にこれを解決する方法を説明できますか。rails_adminまたは、各エンジンから構成を送信する別の方法を教えてください。

4

2 に答える 2

3

RailsAdmin.config が以前のセットアップをクリアするため、これを行うことはできません。回避策として、メイン アプリのすべてのエンジンに対して RailsAdmin を構成できます。

于 2013-05-30T18:21:33.640 に答える
1

config.actionsRails Admin では、すべてのデフォルト アクションをオーバーライドします。次のように、構成でそれらすべてを再度定義する必要があります。

users_engine: /config/initializers/rails_admin.rb
RailsAdmin.config do |config|

  config.actions do
    # root actions
    dashboard                     # mandatory
    # collection actions 
    index                         # mandatory
    new do
      except ["Users::User"]
    end
    export
    history_index
    bulk_delete
    # member actions
    show
    edit
    delete
    history_show
    show_in_app
  end
  ...
end

ただし、これは、メインのアプリや他のエンジンにある構成もオーバーライドします。

于 2013-05-26T10:27:10.627 に答える