【发布时间】:2016-02-02 02:12:57
【问题描述】:
如果我调用render_slider_items(["a.png", "b.png", "c.png"]),我的网页会显示数组["a.png", "b.png", "c.png"],而不是html。
module ApplicationHelper
def render_slider_items(filenames)
filenames.each do |filename|
content_tag(:div, class: "col-md-3") do
tag("img", src: "assets/#{filename}")
end
end
end
end
这是什么原因造成的?
更新 - 解决方案-
def render_slider_items(filenames)
filenames.collect do |filename|
content_tag(:div, class: "col-md-3") do
tag("img", src: "assets/#{filename}")
end
end
end.join().html_safe
【问题讨论】:
-
each返回什么? Ruby 方法返回什么? -
fillennames 是一个文件名数组,因此 .each 返回每个文件名的字符串。
-
所以你的方法的问题在于它返回了
each返回的内容,所以这只是return filenames的复杂表达方式。
标签: ruby ruby-on-rails-4 helpers partials content-for