如果您在某个页面上,请隐藏按钮

时间:2017-10-13 13:41:37

标签: ruby-on-rails ruby haml

我需要在某些页面上显示使用button_to创建的两个按钮(例如:list/id1/edit)并在所有其他页面上隐藏一个按钮(例如:list/new)。我有这个:

= button_link t("list.save"), list_path(@list.save_id), class: "button"    
= button_link t("list.cancel"), list_path(@list.hashed_id), class: "button"

如何创建“如果您在第X页上显示一个按钮,否则 - 2个按钮”?

2 个答案:

答案 0 :(得分:3)

请查看此文档 - http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-current_page-3F

将其用作

current_page?('http://www.example.com/shop/checkout')

答案 1 :(得分:2)

我喜欢@ arjun的答案(特别是@ RyanWilcox的评论),虽然只是为了把其他东西扔进戒指,你也可以访问controller_nameaction_name帮助...... / p>

unless controller_name == 'list' && action_name == 'new'
  show_the_button
end

- unless controller_name == 'list' && action_name == 'new'
  = button_link t("list.save"), list_path(@list.save_id), class: "button"    
  = button_link t("list.cancel"), list_path(@list.hashed_id), class: "button"

在限制/允许某些控制器和/或操作方面,这可以非常灵活。