我正在使用具有提供管理員帳戶的用戶身份驗證的Rails應用程序。在管理員帳戶中,我爲網站設置製作了一個頁面。Rails應用程序設置?
我想知道創建這些設置的標準是什麼。舉例來說,我希望其中一個設置是更改應用程序名稱的名稱,或者更改標題的顏色。
我在找的是一個人來解釋基本的過程/方法 - 不一定是特定的代碼 - 儘管那會很棒!
我正在使用具有提供管理員帳戶的用戶身份驗證的Rails應用程序。在管理員帳戶中,我爲網站設置製作了一個頁面。Rails應用程序設置?
我想知道創建這些設置的標準是什麼。舉例來說,我希望其中一個設置是更改應用程序名稱的名稱,或者更改標題的顏色。
我在找的是一個人來解釋基本的過程/方法 - 不一定是特定的代碼 - 儘管那會很棒!
對於那些並不需要被存儲在一個數據庫表中普遍應用的配置,我喜歡創造內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瞭解詳細信息。
這是我做的,似乎大多數人都採用這種做法太: http://kpumuk.info/ruby-on-rails/flexible-application-configuration-in-ruby-on-rails/
有很不錯的插件/寶石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
在Rails 3.x的'Rails.env'應使用,而不是'RAILS_ENV'。 – Felix 2013-05-08 20:43:25