我正在开发一个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 目录下的自定义初始化器中加载:
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以获取完整详情。
# 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/
Rails.env
而不是RAILS_ENV
。 - Felix