Rails引擎配置

| 我正在开发与第三方一起处理OAuth机制的Rails引擎。我想将所有配置都包含在Struct属性中,因此所有引擎配置数据都存储在一起:
require \'rails\'


module ThirdParty
  class Engine < ::Rails::Engine

    initializer \"third-party.some_init_task\" do |app|
      ThirdPartyConfig = Struct.new(:uri, :client_id, :client_secret, :redirect_uri)

      app.config.thirdparty = ThirdPartyConfig.new
      app.config.thirdparty.uri = \"https://thirdparty.com\"
      app.config.thirdparty.client_id = \"\"
      app.config.thirdparty.client_secret = \"\"
      app.config.thirdparty.redirect_uri = \"\"
    end
  end
end
一些配置应在应用程序级别的初始化程序中定义:
class Application < Rails::Application

    config.thirdparty.client_id = <valid_client_id>
    config.thirdparty.client_secret = <valid_client_secret>
    config.thirdparty.redirect_uri = <redirect_uri>
end
但是由于config.thirdparty在加载应用程序初始化程序时仍未定义,因此将失败。     
已邀请:
        尝试为引擎中的初始化程序指定加载顺序。您应该能够在应用程序配置运行之前强制其加载。这是您要加载初始化程序的猜测
initializer \"third-party.some_init_task\", :before=> :load_config_initializers do |app|
如果那不起作用,请尝试在另一个初始化程序之前加载它。     
        您可以通过主机/主应用程序配置Rails引擎 使用Rails可安装引擎中的gem初始化devolopment.rb环境中的对象     

要回复问题请先登录注册