如何替换循环的html内容?
- @recipes.each do |recipe|
= image_tag "path.png", :height => "?", :width => "?"
Fox示例:
预期输出如下:
image_tag "medium-01.png", :height => "200", :width => "350"
image_tag "small-02.png", :height => "183", :width => "285"
image_tag "small03.png", :height => "183", :width => "285"
image_tag "small-04.png", :height => "183", :width => "285"
image_tag "small-05.png", :height => "183", :width => "285"
image_tag "medium-06.png", :height => "200", :width => "350"
image_tag "medium-07.png", :height => "200", :width => "350"
image_tag "small-08.png", :height => "183", :width => "285"
image_tag "small-09.png", :height => "183", :width => "285"
结果如下:
在jquery中我做到了这一点。也许有帮助:
$("div").each(function(i, element) {
if (i % 5 == 0 || i % 6 == 0) {
$(this).css({"background":"dark_gray_color"});
}
else {
$(this).css({"background":"magenta_color"});
}
});
我清楚了吗?
答案 0 :(得分:3)
使用ruby的Enumerable#each_with_index
来获得类似于你发布的jquery的循环。
@recipes.each_with_index do |recipe, i|
if [0,5,6].include? i
h, w = 200, 350
else
h, w = 183, 285
end
image_tag "path.png", :height => "#{h}", :width => "#{w}"
end
答案 1 :(得分:0)
此代码应该获得您想要的输出。我不确定HAML是否正确(未经测试)。
- @recipes.each.with_index do |recipe, i|
- if [i, i % 5, i % 6].any?(&:zero?)
= image_tag "medium-#{'%02d' % (i + 1)}.png", :height => "200", :width => "350"
- else
= image_tag "small-#{'%02d' % (i + 1)}.png", :height => "183", :width => "285"
- end