Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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 on rails haml条件if/else缩进_Ruby On Rails_Haml - Fatal编程技术网

Ruby on rails haml条件if/else缩进

Ruby on rails haml条件if/else缩进,ruby-on-rails,haml,Ruby On Rails,Haml,在这种情况下,我只想在计数大于0时向div标记添加一个类 例如: - @color.shades.each_with_index do |shade, index| - if index == 0 #shades - else #shades.horizontalLine.second %h3 something %dl %dt some %dd some1 在本例中,我希望从%h3开始的

在这种情况下,我只想在计数大于0时向div标记添加一个类

例如:

- @color.shades.each_with_index do |shade, index|
    - if index == 0
        #shades
    - else
        #shades.horizontalLine.second
     %h3 something
     %dl 
         %dt some
         %dd some1
在本例中,我希望从
%h3
开始的所有内容都在
#shades
#shades.horizontalLine.second
下,具体取决于if和else语句的计算方式

解决办法是:

- @color.shades.each_with_index do |shade, index|
    - if index == 0
        #shades
          %h3 something
            %dl 
              %dt some
              %dd some1
    - else
        #shades.horizontalLine.second
          %h3 something
            %dl 
              %dt some
              %dd some1
但这里我必须重复代码


如何在rails中做到这一点,而不重复从
%h3
开始的两个div的代码,这让我感到困惑

您可以将该类设置为一个变量,该变量根据索引保存类名,以使其干燥:

- @color.shades.each_with_index do |shade, index|
  - shade_classes = index == 0 ? '' : 'horizontalLine second'
    #shades{ :class => shade_classes }
      %h3 something
        %dl 
          %dt some
          %dd some1