Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从多个引擎配置RailsAdmin_Ruby On Rails_Rails Admin - Fatal编程技术网

Ruby on rails 从多个引擎配置RailsAdmin

Ruby on rails 从多个引擎配置RailsAdmin,ruby-on-rails,rails-admin,Ruby On Rails,Rails Admin,我有rails应用程序,它有多个引擎用户,公司,等等 #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: "compa

我有rails应用程序,它有多个引擎
用户
公司
,等等

#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\u admin

#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\u admin

config.actions
在rails 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

但是,这也将覆盖主应用程序或其他引擎中的任何配置。

config.actions
在Rails管理中覆盖所有默认操作。您必须在配置中重新定义它们,如下所示:

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

但是,这也将覆盖主应用程序或其他引擎中的任何配置。

您不能这样做,因为RailsAdmin.config会清除以前的设置。作为一种解决方法,您可以在主应用程序中为所有引擎配置RailsAdmin。

您不能这样做,因为RailsAdmin.config会清除以前的设置。作为一种解决方案,您可以为主应用程序中的所有引擎配置RailsAdmin。

作为一种解决方案,您可以为主应用程序中的所有引擎配置RailsAdmin。作为一种解决方案,您可以为主应用程序中的所有引擎配置RailsAdmin。我已经不明白这一点。你的答案不是我需要的。我需要解决我的问题,我已经不明白了。你的答案不是我需要的。我需要解决我的问题。