Правильный формат для записи условных выражений в ruby ​​и последующего преобразования вывода в строку с использованием интерполяции строк внутри тега HAML - PullRequest
0 голосов
/ 22 марта 2019

Я исправляю ошибку в проекте с открытым исходным кодом ruby ​​on rails в начале проекта.Я новичок в ruby ​​на рельсах, HAML и т. Д. Следующая строка кода доставляет мне много хлопот.

Мне интересно, какой будет правильный способ отформатировать это.Кроме того, есть ли способ написать вспомогательную функцию, чтобы превратить условные выражения в вызов функции?Любая помощь будет оценена.

Я пробовал несколько форматов, но разработчики хотят, чтобы я разбил if-else на несколько строк.Я не могу заставить это работать.

6:       %strong =
7:       "#{
8:         - if @enterprise.is_primary_producer
9:           = t('.producer_profile')
10:         - else
11:           = t('.profile')

Я ожидаю, что представление будет обработано, но вместо этого я получаю синтаксические ошибки.

1 Ответ

0 голосов
/ 31 марта 2019

Как-то так?

%strong
  - if @enterprise.is_primary_producer
    = t('.producer_profile')
  - else
    = t('.profile')

Лично я бы сделал что-то вроде:

- t_key = @enterprise.is_primary_producer ? '.producer_profile' : '.profile'
%strong= t(t_key)

Если вы хотите переместить это в помощник, просто определите его где-нибудь, как в application_helper.rb

def some_name_for_the_method(enterprise)
  t_key = enterprise.is_primary_producer ? '.producer_profile' : '.profile'
  I18n.t(t_key)
end

и на виду

%strong= some_name_for_the_method(@enterprise)
...