根据当前 Rails.env 配置变量
Posted
技术标签:
【中文标题】根据当前 Rails.env 配置变量【英文标题】:Configuring variables depending on current Rails.env 【发布时间】:2012-12-06 21:41:03 【问题描述】:配置不同变量的最简单方法是什么(例如,我在标签 link_to 中有变量,取决于当前的 Rails.env)?
<%
if Rails.env == 'development'
domain = 'somedomain.me'
elsif Rails.env == 'staging'
domain = 'example.com'
end
%>
<%= link_to 'Back', root_url(:subdomain => 'www', :domain => domain), :class=>"btn btn-primary"%>
我想将此 if - elsif 语句移到其他地方,或者如果存在某种“配置文件”,甚至将其删除
【问题讨论】:
你能用你想要完成的具体例子来更新你的问题吗? 【参考方案1】:有一个很棒的宝石,叫做rails_config
:github repo
但是如果你只想配置这个并且只配置这个变量,你可以在 rails 已经拥有的环境配置文件中创建一个常量。
类似:
在您的 config/environments/production.rb 中
# production.rb
Rails.configuration.my_awesome_changing_domain = "somedomain.me"
在您的 config/environments/development.rb 中
# development.rb
Rails.configuration.my_awesome_changing_domain = "***.com"
在您的 config/environments/staging.rb 中
# staging.rb
Rails.configuration.my_awesome_changing_domain = "news.ycombinator.com"
在这个线程的另一个答案中讨论了其他方法: https://***.com/a/5053882
最好的问候
【讨论】:
【参考方案2】:这是一篇关于在 Rails 上设置变量的好博文:http://railsapps.github.com/rails-environment-variables.html
【讨论】:
以上是关于根据当前 Rails.env 配置变量的主要内容,如果未能解决你的问题,请参考以下文章
lapply - 根据当前变量创建新变量,有条件地基于第二个数据框中的信息