我有一个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
部分渲染。
答案 0 :(得分:0)
请再次检查您是否通过以下方式将.env
文件加载到config/application.rb
中
Dotenv::Railtie.load
在此行中实际使用环境变量之前
config.ended = ENV['CAMPAIGN_ENDED'].to_s == 'true'
请记住,更改.env
文件后需要重新启动Rails应用程序。