添加“当前”的最佳方式在Rails 3中导航的类
我在导航菜单中有一些静态页面。我想在当前显示的项目中添加类似“当前”的类。
我这样做的方法是添加大量的辅助方法(每个项目一个)来检查控制器和操作。
def current_root_class
'class="current"' if controller_name == "homepage" && action_name == "index"
end
<ul>
<li <%= current_root_class %>><%= link_to "Home", root_path %>
有没有更好的方法呢??我目前的方式是如此愚蠢......
没有找到相关结果
已邀请:
24 个回复
镀建啼
然后你可以在你的视图或其他辅助方法中使用
......
靛取糕奖穿
的帮手:
用过:
这将生成HTML之类的
搁手
帮助器确定是否应该指定
类。例如:
请注意,您也可以传递路径(不仅是选项的散列),例如:
。
磋判粗惊
例:
程琶
然后在导航中,
这将测试针对当前页面uri的链接路径,并返回当前类或空字符串。 我没有对此进行过彻底的测试,而且我对RoR非常陌生(在PHP使用了十年之后),所以如果这有一个重大缺陷,我很乐意听到它。 至少这样你在每个链接中只需要1个辅助函数和一个简单的调用。
校勒魏寡
要回顾支持代码>添加一个名为nav_link的帮助器:
用过:
这将生成HTML之类的
曝匿弄罚
并在菜单中:
窃誓额
距相镭
峨躬坎抬焚
犯痪桂涛杭
我正在使用materialize css和我使主要类别可折叠的方法是使用下面的代码
希望它可以帮到某人
郸身
方法对我来说不够灵活(比如说你设置了一个控制器而不是一个动作,那么它只会在控制器的索引动作上返回true),所以我根据其他答案做了这个:
例:
抬澈帅沮
如果您查看上面的代码并将其与url_helper.rb中的link_to代码进行比较,唯一的区别是它检查url是否是当前页面,并将类“active”添加到包装li标记。这是因为我在Twitter Bootstrap的nav组件中使用nav_link助手,它更喜欢将链接包含在li标签内,并将“active”类应用于外部li。 上面代码的好处是它允许你将一个块传入函数,就像你可以使用link_to一样。 例如,带图标的引导程序导航列表如下所示: 瘦:
输出:
此外,就像link_to帮助器一样,您可以将HTML选项传递到nav_link,该选项将应用于a标签。 传入锚点标题的示例: 瘦:
输出:
铰齐插
nav_link助手的工作方式与标准的Rails link_to助手类似,但如果满足某些条件,则会向链接(或其包装器)添加“选定”类。默认情况下,如果链接的目标网址与当前网页的网址相同,则会在链接中添加默认的“已选择”类。 这里有一个要点:https://gist.github.com/3279194 更新:这是一个宝石:http://rubygems.org/gems/nav_link_to
稍惮
页面突出显示了
链接
瞧叮
application_helper.rb:
application_controller.rb:
谷起
使其更有用。
粟痢凰副
但是也:
或任何其他html内容(例如,您可以添加图标)。 这里的助手是:
稳赣苍卯改
内的HTML(例如,在链接中添加一个图标) 添加几行代码到
将
附加到link元素的整个类名,而不是它是唯一的类。 所以,将其添加到
:
在您的模板上,您可以使用以下内容:
作为奖金你可以指定或不是
并使用它如下:
感谢先前的答案1,2和资源。
脾萌
贸会
然后..
犀寺扦
,
,
谢谢。
咳累录酬
因此,在视图中,调用此帮助程序的方式与调用link_to帮助程序的方式相同
邪罗逢确胃
中创建一个方法,如下所示。
现在在下面的用例中使用它。 1.对于任何特定控制器的所有动作
2.对于许多控制器的所有动作(以逗号分隔)
3.对于任何特定控制器的特定操作
4.对于许多控制器的特定动作(以逗号分隔)
5.对于任何特定控制器的某些特定操作
6.对于许多控制器的某些特定操作(以逗号分隔)
希望能帮助到你