处理 Rails3 插件中的设置的适当方法?
我正在为 Rails3 开发一个插件。我想允许用户覆盖某些设置。目前,我正在插件的 Rails::Engine 类中执行此操作,如下所示:
config.my_setting = :default_value unless config.respond_to? :my_setting
这似乎是处理此问题的错误方法。大多数插件在 Rails3 中使用更好的方法或约定吗?
I'm working on a plugin for Rails3. I'd like to allow users to override some settings. At the moment I'm doing this inside my plugin's Rails::Engine class like:
config.my_setting = :default_value unless config.respond_to? :my_setting
This seems like the wrong way to handle this. Is there a better method or convention most plugins use in Rails3?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议人们在 Railtie 中为其设置创建一个新的设置命名空间:
然后,用户可以设置插件的配置或覆盖其 Application 类中的默认值。这是 Rails 在我们内部 Railties 中使用的模式。
就像 Paul 所说,您可以通过创建一个生成器来转储初始化程序,并注释掉所有可能的配置设置以供其使用,从而使事情变得更加容易。
I recommend that people create a new settings namespace for their settings in their Railtie:
Then, the user can set your plugin's config or override defaults in their Application class. This is the pattern Rails uses in our internal Railties.
Like Paul said, you could make it even easier by creating a generator that dumps an initializer with all the possible config settings commented out for their use.
有几种常见方法可以在 Rails 插件中指定配置设置。
我更喜欢有一个包含插件设置的初始化程序文件。通过向插件添加生成器,可以使用默认设置创建此文件。然后,用户可以运行生成器并轻松查看一个文件中的所有插件设置。
查看 client_side_validations 示例
There are a couple common ways to specify configuration settings in a rails plugin.
I prefer to have an initializer file that contains the plugin settings. This file can be created with the default settings by adding a generator to your plugin. Then the user can run the generator and easily see all the plugin settings in one file.
Checkout the client_side_validations for an example