Ruby on Rails, если условие / else не работает - PullRequest
0 голосов
/ 26 июня 2019

У меня есть представление приложения Rails, в котором я хочу отобразить одну из двух частичек в зависимости от настройки переменной ENV. По какой-то причине условие всегда оценивается как ложное, поэтому отображается частичное 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 active перед завершением кампании, тогда будет campaign ended частичное рендеринг.

1 Ответ

0 голосов
/ 26 июня 2019

Пожалуйста, дважды проверьте, что вы загружаете файл .env в config/application.rb с помощью

Dotenv::Railtie.load

, прежде чем фактически использовать переменную окружения в этой строке

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

Помнитечто вам нужно перезапустить приложение Rails после изменения файла .env.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...