我需要为我的Rails应用程序创建一个配置选项。它对于所有环境都可以是相同的。我发现如果我在environment.rb
中设置它,它在我的视图中是可用的,这正是我想要的……
environment.rb
AUDIOCAST_URI_FORMAT = http://blablalba/blabbitybla/yadda
效果很好。
然而,我有一点不安。这是一个好方法吗?有没有更时髦的方法?
发布于 2011-01-18 21:18:46
Rails 3版本的初始化器代码如下(RAILS_ROOT和RAILS_ENV已弃用)
APP_CONFIG = YAML.load_file(Rails.root.join('config', 'config.yml'))[Rails.env]
此外,Ruby 1.9.3使用了使合并关键字区分大小写的which,因此您需要更改配置文件以考虑到这一点,例如
defaults: &DEFAULTS
audiocast_uri_format: http://blablalba/blabbitybla/yadda
development:
<<: *DEFAULTS
test:
<<: *DEFAULTS
production:
<<: *DEFAULTS
发布于 2015-01-30 06:23:09
我只想更新这个Rails 4.2和5中最酷的东西,你现在可以在你的任何config/**/*.rb
文件中这样做:
config.x.whatever = 42
(这是一个字面上的x
。从字面上看,config.x.
必须是这样的,然后您可以在x
之后添加任何您想要的内容)
...and这将在你的应用程序中提供:
Rails.configuration.x.whatever
点击此处查看更多信息:http://guides.rubyonrails.org/configuring.html#custom-configuration
发布于 2012-11-14 14:29:57
只是关于这个主题的一些额外信息:
APP_CONFIG = YAML.load_file(Rails.root.join('config', 'config.yml'))[Rails.env].with_indifferent_access
".with_indifferent_access“允许您使用字符串键或等效的符号键来访问散列中的值。
例如:
APP_CONFIG['audiocast_uri_format'] => 'http://blablalba/blabbitybla/yadda'
APP_CONFIG[:audiocast_uri_format] => 'http://blablalba/blabbitybla/yadda'
纯粹是为了方便,但我更喜欢将我的键表示为符号。
https://stackoverflow.com/questions/592554
复制相似问题