Ruby在轨道上,如果/其他条件不起作用



我有一个导轨应用程序视图,我想根据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,因此我希望我认为的条件是真实的,并呈现竞选活动。但是,它呈现竞选活动的部分。现在,如果我将语句切换在广告系列结束之前,将campaign active放置在campaign ended部分渲染中。

请仔细检查您正在使用

config/application.rb中加载.env文件
Dotenv::Railtie.load

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

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

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

最新更新