Rails应用程序设置?

时间:2010-05-25 19:01:18

标签: ruby-on-rails settings administration

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

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

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

3 个答案:

答案 0 :(得分:14)

对于不需要存储在数据库表中的常规应用程序配置,我喜欢在 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']

有关详细信息,请参阅this Railscast

答案 1 :(得分:6)

有一个非常好的插件/ 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

答案 2 :(得分:4)

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