在每个页面上,我们都为访客用户提供了这样的条件。
<% if not_guest? %>
<% link_to "show", path %>
<% end %>
<% if not_guest? %>
<% link_to "delete", path %>
<% end %>
<% if not_guest? %>
<% link_to "edit", path %>
<% end %>
应该为访客用户显示或不显示哪个链接。
有没有更好的方法来处理这种情况,而不是为每个链接编写条件?
答案 0 :(得分:5)
帮帮忙:
#helpers/application_helper.rb
def link_to_unless_guest(*args)
if not_guest
link_to(*args)
end
end
然后像
一样打电话<% link_to_unless_guest "show", path %>
答案 1 :(得分:0)
def link_to_editable(*args)
options = args.extract_options![:parent]
html_tag = options.nil? ? nil : options.delete(:html_tag)
if not_guest
unless html_tag.nil?
content_tag html_tag,options do
link_to(*args)
end
else
link_to(*args)
end
end
end
<%= link_to_editable 'Show', path,:parent => {:html_tag => "li",:style => "border-top:1px solid #A2A2A2;",:class => "left"} %>
<%= link_to_editable 'Show', path %>
根据我的需要由@Max提供的修改过的帮助器。