Использование вспомогательного класса для логической кнопки - PullRequest
0 голосов
/ 08 мая 2018

Моя кнопка выглядит следующим образом

<% if user.active == true  %>
        <%= button_to "Block", user_path(id: user.id, active: false), class: 'btn btn-outline-dark',  method:  :patch %>
        <%else%>
        <%= button_to "Unblock", user_path(id: user.id, active: true), class: 'btn btn-outline-dark',  method: :patch %>
        <%end%>

Мне нужно иметь вспомогательный класс для приведенного выше кода представления вместо повторения кнопки дважды. Может ли кто-нибудь помочь мне с этим

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

В помощниках:

def block_button(is_active)
  button_to is_active ? 'Block' : 'Unblock', user_path(id: user.id, active: !is_active), class: 'btn btn-outline-dark',  method:  :patch
end

В шаблоне

<%= block_button(user.active) %>
0 голосов
/ 08 мая 2018

Или вы можете просто предоставить логику внутри button_to помощника:

<%= button_to (user.active ? "Block" : "Unblock"), user_path(id: user.id, active: !user.active), class: 'btn btn-outline-dark',  method:  :patch %>

Таким образом, если вы все еще думаете, что это многословно, вы можете переместить (user.active ? "Block" : "Unblock") логику в помощник декоратора.

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