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