在rails haml文件中动态更改类

时间:2015-02-18 15:12:02

标签: html ruby-on-rails ruby-on-rails-3 haml

我在haml文件中有以下代码行

%a#mypage{:href => hub_path(@user), :class => "#{path.match('(hub)') ? 'current': ''}"}

这样做可确保突出显示导航栏上的正确项目。但是,如果匹配多个路径中的任何一个,我需要突出显示相同的项目。

所以,上面我们有与hub相匹配的路径。如果路径与hub,item2或item3匹配,我需要它返回true。

不知道从哪里开始。我试过投入“||”进入课堂,看看我是否可以列出它们,但这不起作用。有没有办法在指定匹配时执行“包含”?

续...

所以我接受了下面海报的建议,但仍然无法让它工作

我现在正在测试它

- path = request.fullpath
- if path.match(/\(performance_hub|objectives|deliverables\)/)
  true
- else 
  fail
  %br
= path

即使路径是

/users/170/hub

它仍然是假的。我哪里错了?

2 个答案:

答案 0 :(得分:1)

尝试使用正则表达式而不是字符串

:class => "#{path.match(/\(hub|item2|item3\)/) ? 'current': ''

这将搜索(hub)(item2)(item3)

答案 1 :(得分:0)

答案最终成为了这个

%a#mylink{:href => hub_path(@user), :class => "#{%w(hub objective deliverable).any?{|w| path.match(w)} ? 'current': ''}"}