Запросы в представлениях Rails - какой самый эффективный способ повторить один? - PullRequest
0 голосов
/ 20 марта 2020

У меня есть несколько экземпляров на странице, где мне нужно знать, есть ли у current_user вложение расширенного текста 'tlk_with_me'. Например:

<%= current_user.tlk_with_me.present? ? 'update-class' : 'leave-class' %>

<%= f.submit "#{ current_user.tlk_with_me.present? ? 'Update' : 'Leave' } Your Details"... %>

<% if current_user.tlk_with_me.present? %>
  <p class="create-remove-details">...</p>
<% end %>

Я не знаю много о глубоких деталях Rails, но мне интересно, если это более эффективно сделать или установить переменную в представлении (или контроллере) .

Например:

<% current_user.tlk_with_me.present? ? @twm_present = true : @twm_present = false %>

А затем построить мои представления с использованием этого логического значения; Например:

<%= @twm_present ? 'update-class' : 'leave-class' %>

Было бы здорово узнать больше о Rails, получив ответ на этот вопрос. Спасибо.

1 Ответ

1 голос
/ 20 марта 2020

Простым способом было бы добавить метод к вашей модели пользователя:

class User
  def twm?
    tlk_with_me.present?
  end 
end

Таким образом, вы можете написать <%= current_user.twm? ? 'update-class' : 'leave-class' %>

Я бы не беспокоился об эффективности вызова этого множественного числа раз, если это не сетевой вызов, вы должны его кэшировать.

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