我想做一个条件link_to
,只有当用户以管理员身份登录时才显示。所以我这样做了:
应用程序控制器
def confirm_admin
if session[:role] == "admin"
@isAdmin = true
else
flash[:notice] = "Vous n'avez pas les droits pour accéder à cette page."
redirect_to root_path
return false
end
end
查看
<%= link_to_if is_admin, 'Editer l\'idée', edit_idee_path(@idee), :class => "editer custom-button" %>
链接消失但文字仍然存在,你知道为什么吗?
答案 0 :(得分:1)
link_to_if
只会使文字为无链接文字;它从文本中删除链接,而不是文本本身。
您要做的是,您可以通过以下代码实现:
<% if is_admin %>
<%= link_to 'Editer l\'idée', edit_idee_path(@idee), :class => "editer custom-button" %>
<% end %>
<%# Now, it will remove both: link as well as text. %>
答案 1 :(得分:0)
更好的方法是在link_to_if语句的末尾添加一个空块,这将在条件为真时显示文本,而在条件为假时不显示。
E.g。
flash[:notice]= "Some text that will always show.
#{view_context.link_to_if(user.exists?,
'A hyperlink that will show based on conditional',
user_path)**{}**}"