在有人向我指出link_to_unless_current
之后,我想将其应用到我的信息中心侧边栏。但是,我无法让它工作,所以我猜我做错了。
这是我目前的侧栏
.dashboard_bar
%ul
= link_to admin_dashboard_path do
%li.icon-dashboard
= link_to admin_cs_dashboard_path do
%li.icon-heart
= link_to admin_dashboard_path do
%li.icon-money
= link_to admin_dashboard_path do
%li.icon-group
= link_to admin_dashboard_path do
%li.icon-bug
= link_to admin_dashboard_path do
%li.icon-hdd
当我将link_to
更改为link_to_unless_current
时,它只是搞砸了我的CSS并且图标不再可点击。
有人可以告诉我如何解决它吗?
P.S。我确实查看了Rails guide,但仍然无法弄明白。
答案 0 :(得分:0)
最可能的原因是你和admin_dashboard_path在同一个网址上。因此,您的所有链接都已停用并显示为文字。
答案 1 :(得分:0)
好的,在与更了解Rails的人坐下后,我们找到了以下解决方案:
.dashboard_bar
%ul
%li
= link_to_unless_current '', admin_dashboard_path, :class => "icon-dashboard" do
%span.icon-dashboard
%li
= link_to_unless_current '', admin_cs_dashboard_path, :class => "icon-heart" do
%span.icon-heart
%li
= link_to_unless_current '', "#", :class => "icon-money" do
%span.icon-money
%li
= link_to_unless_current '', "#", :class => "icon-group" do
%span.icon-group
%li
= link_to_unless_current '', "#", :class => "icon-bug" do
%span.icon-bug
%li
= link_to_unless_current '', "#", :class => "icon-hdd" do
%span.icon-hdd
主要问题是链接位于li
附近,而它们应位于li
内。通过将类应用于:class => "icon-*"
和span
的链接,我们设法创建了我正在寻找的外观和功能。
只要link_to_unless_current
看到我在该链接的当前页面上,它就会将链接更改为范围,从而创建了在当前页面和其他链接的图标上使用css的可能性。
答案 2 :(得分:0)
将块传递给#link_to_unless_current
并不会将块传递给#link_to
:块的内容使用as an alternative content if link is indeed current path。
所以,当你写:
= link_to admin_dashboard_path do
%li.icon-money
您实际说的是:使用nil名称链接到admin_dashboard_path。但如果它是当前路径,请改为编写<li class="icon-money">
。
如果你想达到你想要的(链接中的列表项),你应该这样做:
= link_to_unless_current '<li class="icon-money"></li>'.html_safe, admin_dashboard_path
这在haml文件中非常奇怪,最好的解决方案可能是将链接保留在列表项中。