根据当前 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 配置变量的主要内容,如果未能解决你的问题,请参考以下文章

根据当前阶段更改变量

如何以编程方式获取当前正在运行的 XC 测试计划的配置?

activemerchant auth.net 登录错误

lapply - 根据当前变量创建新变量,有条件地基于第二个数据框中的信息

使用 dplyr mutate 函数根据当前行有条件地创建新变量

opsworks rails.env 与自定义 json rails_env 不匹配