我的按钮如下
<% 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%>
我需要为上面的视图代码设置辅助类,而不是重复按钮两次。任何人都可以帮助我吗
答案 0 :(得分:1)
或者您可以在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")
逻辑移动到装饰器的帮助器中。
答案 1 :(得分:0)
帮助者:
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) %>