Ruby on rails RubyonRails-每个do片段的不同元素

Ruby on rails RubyonRails-每个do片段的不同元素,ruby-on-rails,ruby,ruby-on-rails-4,each,Ruby On Rails,Ruby,Ruby On Rails 4,Each,在我的应用程序中,由于我在应用程序中所做的一些工作,我会执行每个\u切片,然后执行每个带有\u索引的\u 我当前的代码如下: 及(例2) 但我没有得到我想要的。Ex.1取每1个元素并添加300x250和每2个元素并添加300x600,因此我没有得到Taboola并获得300x250和300x600的两倍,而Ex.2取每2个元素并仅添加300x250 Ex.1结果如下: Ex.2结果如下: 我如何才能实现,以便我可以选择我想在每个元素上显示的广告 我想要的结果是: 希望我能解释我在寻找什么。目标应

在我的应用程序中,由于我在应用程序中所做的一些工作,我会执行
每个\u切片
,然后执行
每个带有\u索引的\u

我当前的代码如下:

及(例2)

但我没有得到我想要的。Ex.1取每1个元素并添加300x250和每2个元素并添加300x600,因此我没有得到Taboola并获得300x250和300x600的两倍,而Ex.2取每2个元素并仅添加300x250

Ex.1结果如下:

Ex.2结果如下:

我如何才能实现,以便我可以选择我想在每个元素上显示的广告

我想要的结果是:


希望我能解释我在寻找什么。

目标应该是在视图中尽可能少地保留逻辑。复杂的逻辑应该在模型/控制器/助手中完成

以下是一种可能性:

它输出:

Image : imageA
ParamL: 300x250
ParamR: r1
Index : 0
Even? : true

Image : imageB
ParamL: 300x600
ParamR: r2
Index : 1
Even? : false

Image : imageC
ParamL: Taboola
ParamR: r3
Index : 2
Even? : true

Image : imageD
ParamL: 
ParamR: 
Index : 3
Even? : false
这似乎是足够的信息,你想做什么

另外,您使用1或2作为参数调用每个\u片
每个_片(1)
基本上是无用的,
每个_片(2)
只会将数组成对分割。检查
id
是否为奇数或偶数,可以提供同样多的信息,而不需要另一个嵌套块


每个_切片(2)
也是索引保持等于
0
1
的原因。它不能等于2,因此您的
Taboola
案例从未发生过。

谢谢您的帮助@Eric。我还有最后一个问题。在
zip
中,您有
数组
,用于进入
.col-md-2左侧广告
。在该阵列中,我如何还可以为
.col-md-3右侧广告设置广告。右侧的广告也将与左侧广告相同。我可以将数组添加到我的
助手中。我在
嵌套数组中添加了代码,并执行了以下操作:
参数[0][2]
,但我得到错误:
未定义的方法
[],用于RailsName中的nil:NilClass`左侧,具有不同的ads类型和大小。我的数组现在看起来像:
[['300x250','ads left 1'],['300x600','ads left 2'],['Taboola','ads left 1']
并且我的
助手中的数组已经更新。嵌套数组是个好主意,但是
param[0][2]
可能会失败,因为
param[0]
可能为零。太好了。很有魅力:)谢谢你的帮助
- if i == 0
  %h1 300x250
- elsif i == 1
  %h1 300x600
- elsif i == 2
  %h1 Taboola
- if i+1 == group.length
  %h1 i+1 = group.length
Image 1 => 300x250
Image 2 => 300x600
Image 3 => 300x250
Image 4 => 300x600
Image 1 => /* Nothing */
Image 2 => 300x250
Image 3 => /* Nothing */
Image 4 => 300x250
Image 1 => 300x250
Image 2 => 300x600
Image 3 => Taboola
Image 4 => /* Nothing */
@images = %w(imageA imageB imageC imageD)

params = [
  ['300x250','r1'],
  ['300x600','r2'],
  ['Taboola','r3']
]

@images.zip(params).each_with_index do |(image, param), i|
  left, right = param
  puts "Image : #{image}"
  puts "ParamL: #{left}"
  puts "ParamR: #{right}"
  puts "Index : #{i}"
  puts "Even? : #{i.even?}"
  puts
end
Image : imageA
ParamL: 300x250
ParamR: r1
Index : 0
Even? : true

Image : imageB
ParamL: 300x600
ParamR: r2
Index : 1
Even? : false

Image : imageC
ParamL: Taboola
ParamR: r3
Index : 2
Even? : true

Image : imageD
ParamL: 
ParamR: 
Index : 3
Even? : false