Dav*_*rth 5 configuration plugins ruby-on-rails
我正在为Rails创建一个引擎作为插件.我希望能够在加载Rails的配置时对其进行必要的更改,以便它可以指定其Gem依赖关系以及添加一些加载路径.
插件的init.rb文件可以访问配置对象,但这实际上是只读的,您可以指定一个gem,但它没有区别,初始化程序必须已经在此时运行.
我现在已经解决了这个问题,需要一个带有新Rails :: Initializer块的文件,如下所示:
Rails::Initializer.run do |config|
config.gem "authlogic", :version => ">= 2.0.9"
# etc
end
Run Code Online (Sandbox Code Playgroud)
这可以工作,但会清除主应用程序环境中的任何现有配置.rb.
也许我可以通过在引擎中添加一个生成器来解决这个问题,这个生成器向environment.rb添加一些东西,它在正确的阶段加载插件的配置,或者可能有一种方法可以为配置/初始化程序添加一个文件来完成这项工作.不知道如何最好地解决这个问题.
我会选择配置/初始化器路线。这是放置特定于插件的配置代码的标准文件夹,它将在正确的时间加载。
为了实现,我会尽最大努力为所有允许我没有配置文件的事物选择合理的默认值。(我知道这并不总是可能的。)
接下来,我将使用插件创建一个生成器,该生成器将使用以下命令在 config/initializers 中自动创建配置文件:
./script/generate plugin MyPlugin --with-generator
Run Code Online (Sandbox Code Playgroud)
最后,我会在插件的 install.rb 中添加一些内容,以便在安装插件时运行生成器脚本。这样,配置文件会在安装时自动生成,并且用户如果想要恢复默认配置,仍然可以轻松地重新生成。
| 归档时间: |
|
| 查看次数: |
1192 次 |
| 最近记录: |