2010-05-25 170 views
10

我正在使用具有提供管理員帳戶的用戶身份驗證的Rails應用程序。在管理員帳戶中,我爲網站設置製作了一個頁面。Rails應用程序設置?

我想知道創建這些設置的標準是什麼。舉例來說,我希望其中一個設置是更改應用程序名稱的名稱,或者更改標題的顏色。

我在找的是一個人來解釋基本的過程/方法 - 不一定是特定的代碼 - 儘管那會很棒!

回答

14

對於那些並不需要被存儲在一個數據庫表中普遍應用的配置,我喜歡創造內config.yml文件config目錄。對於你的榜樣,它可能是這樣的:

defaults: &defaults 
    app_title: My Awesome App 
    header_colour: #fff 

development: 
    <<: *defaults 

test: 
    <<: *defaults 
    app_title: My Awesome App (TEST ENV) 

production: 
    <<: *defaults 

此配置文件會從一個自定義的初始化加載配置/初始化

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瞭解詳細信息。

+0

在Rails 3.x的'Rails.env'應使用,而不是'RAILS_ENV'。 – Felix 2013-05-08 20:43:25

6

有很不錯的插件/寶石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