Rails:有条件的主页链接

时间:2012-09-06 03:52:25

标签: ruby-on-rails ruby ruby-on-rails-3.1

我目前正在使用

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

当导航栏不在根路径时显示导航栏上的Home链接。它工作正常,除了它留下文本&#34; Home&#34;当 在根路径上时,(不是链接,只是文本)。

我确定有更好的方法可以做到这一点,任何提示?

4 个答案:

答案 0 :(得分:6)

link_to("Home", root_path) unless current_page?(root_url)

答案 1 :(得分:1)

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

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

API表明,如果你想做的不仅仅是返回名字,你可以传入一个块并做你想做的事情,在这种情况下返回一个空字符串。

答案 2 :(得分:0)

link_to_unless_current通过以下方式工作:

  1. 如果条件为真,则会将链接置于原位
  2. 如果条件不正确,它只会放置文本(没有链接)。
  3. 此功能通常用于您仍希望显示“当前”选项的菜单中,即使您在该页面上 - 通常您也会想要以某种方式突出显示它。

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

    link_to("Home", root_path) unless current_page?(root_path)
    

答案 3 :(得分:0)

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