如果/其他条件不起作用,则Ruby on Rails

时间:2019-06-26 13:23:39

标签: ruby if-statement ruby-on-rails-5

我有一个Rails应用程序视图,在此视图中,我想显示两个部分之一,具体取决于ENV变量设置。由于某些原因,该条件始终被评估为false,因此显示campaign_active部分。我将ENV更改为true,并尝试切换渲染语句,发现仅执行else之后的语句。我想念什么?

这里是视图:

<% if Rails.application.config.ended %>
  <%= render "users/campaign_ended" %>
<% else %>
  <%= render "users/campaign_active" %>
<% end %>

以下是application.rb设置:

config.ended = ENV['CAMPAIGN_ENDED'].to_s == 'true'

这是.ENV文件:

CAMPAIGN_ENDED=true

ENV中的广告系列设置设置为true,因此我希望视图中的条件为true,并局部渲染campaign_ended。但是,它呈现了campaign_active部分。现在,如果我切换语句并在运动结束之前放置campaign active,则campaign ended部分渲染。

1 个答案:

答案 0 :(得分:0)

请再次检查您是否通过以下方式将.env文件加载到config/application.rb

Dotenv::Railtie.load

在此行中实际使用环境变量之前

config.ended = ENV['CAMPAIGN_ENDED'].to_s == 'true'

请记住,更改.env文件后需要重新启动Rails应用程序。