我想根据用户状态(登录或未登录)更改我的应用程序中的徽标链接到的位置。
如果用户已登录,我希望它链接到他们的个人资料页面(用户/节目)。如果未登录,则进入 root_path。
我使用助手进行了此设置:
看法:
<%= link_to logo, root_path %>
帮手:
def logo
logo = image_tag("rlogo.png", alt: "Sample App")
end
谢谢
我想根据用户状态(登录或未登录)更改我的应用程序中的徽标链接到的位置。
如果用户已登录,我希望它链接到他们的个人资料页面(用户/节目)。如果未登录,则进入 root_path。
我使用助手进行了此设置:
看法:
<%= link_to logo, root_path %>
帮手:
def logo
logo = image_tag("rlogo.png", alt: "Sample App")
end
谢谢
Matzi 建议的三元解决方案肯定会起作用,但另一种选择是修改您的助手以设置徽标和链接,如下所示(其中current_user
是为登录用户返回User
实例的方法):
def logo_link
destination = current_user.present? ? current_user : root_path
link_to image_tag("rlogo.png", alt: "Sample App"), destination
end
然后,在您看来,只需包括
<%= logo_link %>
如果您仍然希望在外部使用该上下文,您也可以在帮助程序中使用现有logo
的帮助程序。logo_link
在视图中使用类 C 的条件表达式:
<%= link_to logo, (is_logged ? profile_path : root_path) %>