我正在开发具有提供管理员帐户的用户身份验证的 Rails 应用程序。在管理员帐户中,我为站点范围的设置创建了一个页面。
我想知道创建这些设置的规范是什么。例如,我希望其中一项设置是更改应用程序名称的名称,或更改标题的颜色。
我正在寻找的是有人解释基本过程/方法 - 不一定是特定代码 - 尽管那会很棒!
我正在开发具有提供管理员帐户的用户身份验证的 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中的自定义初始化程序加载:
导轨 2.x:
APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")[RAILS_ENV]
导轨 3.x:
APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env]
然后,您可以使用以下方法检索该值:
title = APP_CONFIG['app_title']
有关详细信息,请参阅此 Railscast。
有相当不错的插件/宝石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/