2

我目前正在使用

<li><%= link_to_unless_current("Home", root_path) %></li> 

当它们不在根路径时,在导航栏上显示主页链接。它工作正常,除了当它们位于根路径时留下文本“Home”(不是链接,只是文本) 。

我敢肯定有更好的方法来做到这一点,有什么建议吗?

4

4 回答 4

6
link_to("Home", root_path) unless current_page?(root_url)
于 2012-09-06T04:02:03.970 回答
1

您可以这样做以省略“Home”:

<%= link_to_unless_current("Home", root_path) { "" } %>

API表明,如果您想做的不仅仅是返回名称,您可以传入一个块并执行您想要的操作,在这种情况下返回一个空字符串。

于 2012-09-06T04:01:17.733 回答
0

link_to_unless_current通过这样做工作:

  1. 如果条件为真,它会将链接放置到位
  2. 如果条件不成立,它只会放置文本(没有链接)。

此功能通常用于您仍希望显示“当前”选项的菜单中,即使您在该页面上 - 通常您经常希望以某种方式突出显示它。

如果您希望链接根本不显示,只需执行“正常”链接并使用,除非在整个 link_to 方法调用中使用。例如本杰明谭的例子:

link_to("Home", root_path) unless current_page?(root_path)
于 2012-09-06T04:10:11.960 回答
0

我想最好不要使用 link_to_unless 或 link_to_if,因为它会使用户感到困惑。最好更改其样式或背景并留下链接以轻松重新加载页面点击链接。

于 2012-09-06T09:46:18.727 回答