使用Slim在Rails中动态地将活动类添加到li

时间:2018-03-26 18:11:44

标签: ruby-on-rails slim-lang

我尝试在使用slim时添加活动类来列出项目。现在我有以下代码:

      li.nav-active = link_to 'One', '/one'
      li.nav-active = link_to '2', '/2'
      li = link_to 'A', '/a'
      li = link_to 'B', '/c'
      li = link_to 'D', '/d'

然后我帮助我使用:

def create_link(text, path)
 class_name = current_page?(path) ? 'nav-active' : ''

 content_tag(:li, class: class_name) do
   link_to text, path
 end
end

这似乎与实际工作无关。无论是否处于活动状态,前两个列表项都会自动将CSS应用于nav-active。

然后我切换到以下内容:

      li#{active_class('/one')} = link_to 'One', '/one'
      li.nav-active = link_to '2', '/2'
      li = link_to 'A', '/a'
      li = link_to 'B', '/c'
      li = link_to 'D', '/d'

使用以下帮助程序:

def active_class(link_path)
  current_page?(link_path) ? "nav-active" : ""
end

这里的问题是我得到了Slim :: Parser :: SyntaxError。预期的属性。

那么在使用Slim时是否有一种为当前页面应用活动类的好方法?

1 个答案:

答案 0 :(得分:0)

以防万一有人需要知道未来的答案。

li class="#{active_class('/url')}" = link_to 'Name', '/url'