Rails应用程序设置?

我正在使用具有用户身份validation的Rails应用程序,该应用程序提供管理员帐户。 在管理员帐户中,我为网站范围设置了一个页面。

我想知道创建这些设置的标准是什么。 比方说,我希望其中一个设置是更改应用程序名称的名称,或更改标题的颜色。

我正在寻找的是有人解释基本的过程/方法 – 不一定是具体的代码 – 虽然那会很棒!

对于不需要存储在数据库表中的一般应用程序配置,我喜欢在config目录中创建config.yml文件。 对于您的示例,它可能如下所示:

 defaults: &defaults app_title: My Awesome App header_colour: #fff development: <<: *defaults test: <<: *defaults app_title: My Awesome App (TEST ENV) production: <<: *defaults 

此配置文件从config / initializers中的自定义初始化程序加载:

Rails 2.x:

 APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")[RAILS_ENV] 

Rails 3.x:

 APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env] 

然后,您可以使用以下方法检索值:

 title = APP_CONFIG['app_title'] 

有关详细信息,请参阅此Railscast 。

有非常好的插件/ gem Settingslogic 。

  # app/config/application.yml defaults: &defaults cool: saweet: nested settings neat_setting: 24 awesome_setting: <%= "Did you know 5 + 5 = #{5 + 5}?" %> development: <<: *defaults neat_setting: 800 test: <<: *defaults production: <<: *defaults 

您可以在任何地方使用这些设置,例如在模型中:

  class Post < ActiveRecord::Base self.per_page = Settings.pagination.posts_per_page end 

这就是我所做的,似乎大多数人也遵循这种方法: http : //kpumuk.info/ruby-on-rails/flexible-application-configuration-in-ruby-on-rails/