Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Rails 3.2视图中基于节或控制器的类高亮显示_Ruby_Haml_Ruby On Rails 3.2 - Fatal编程技术网

Ruby Rails 3.2视图中基于节或控制器的类高亮显示

Ruby Rails 3.2视图中基于节或控制器的类高亮显示,ruby,haml,ruby-on-rails-3.2,Ruby,Haml,Ruby On Rails 3.2,我已经看了一部哈姆勒电影,现在有了奇怪的行为。当我访问两个不同的控制器操作时,一个实例工作,而另一个失败。代码如下: = link_to_unless_current(t('some.string', :en=>'SomeString'), '/url',{:class=>(controller.controller_name == 'randomController' ? 'current' : 'header-link')}) 当我在任一视图中输出=controller.con

我已经看了一部哈姆勒电影,现在有了奇怪的行为。当我访问两个不同的控制器操作时,一个实例工作,而另一个失败。代码如下:

= link_to_unless_current(t('some.string', :en=>'SomeString'), '/url',{:class=>(controller.controller_name == 'randomController' ? 'current' : 'header-link')})
当我在任一视图中输出
=controller.controller\u name
时,我会在主列表页(其中所有对象都显示为分页)上获得“randomController”。该类不会应用,但当移动到“show”页时,该类突然出现。由于控制器在两种情况下都是相同的(两种情况下都打印相同的字符串),为什么类的应用不一样


通常,是否有更好的方法基于当前控制器设置链接样式,而不是检查控制器名称?
current_页面
helper需要控制器和操作,这意味着它在这里不是合适的候选者

我将把这个标记为答案,以防其他人在同一个问题上绊倒。希望此格式正确:

     = link_to_unless_current(t('some.string', :en=>'SomeString'), '/url',{:class=>(controller.controller_name == 'randomController' ? 'current' : 'header-link')})  do 
        %span.current
            = (t('some.string', :en=>'SomeString'

这显然可以被清除以删除重复的元素,并可能最终成为一个应用程序装饰程序,以便我可以在站点上的任何视图中使用它。

刚才看到,您可以传递一个块来链接到,除非在当前页面上执行当前的。只是包括了一个跨度与我想要的类,它的工作!