0

我想根据用户状态(登录或未登录)更改我的应用程序中的徽标链接到的位置。

如果用户已登录,我希望它链接到他们的个人资料页面(用户/节目)。如果未登录,则进入 root_path。

我使用助手进行了此设置:

看法:

<%= link_to logo, root_path %>

帮手:

  def logo
    logo = image_tag("rlogo.png", alt: "Sample App")
  end

谢谢

4

2 回答 2

2

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

于 2012-07-06T18:57:49.063 回答
0

在视图中使用类 C 的条件表达式:

<%= link_to logo, (is_logged ? profile_path : root_path) %>
于 2012-07-06T18:49:07.837 回答