我有一個更大的方法,我想用它來取數組值並將它們插入到鏈接中。我正在使用該方法在我自定義的應用的元數據中生成鏈接字段。完整的方法如下:爲什麼「每個」方法在第一個數組值之後停止?
def get_facet_from_datastream(resource, datastream_name, field_key, opts={})
if opts.has_key?(:values)
values = opts[:values]
if values.nil? then values = [opts.fetch(:default, "")] end
else
values = resource.get_values_from_datastream(datastream_name, field_key, opts.fetch(:default, ""))
if values.empty? then values = [ opts.fetch(:default, "") ] end
end
facet = field_key.to_a.join("_") + "_facet"
values.each do |v|
searchv = v.to_s.gsub(/ /, "+")
link = "<a href=\"http://development4/lcdl/catalog?f[#{facet}][]=#{searchv}\">#{v}</a>"
return link.html_safe
end
end
我具有「values.each do
」一節中的問題。返回鏈接對陣列中的第一個值起作用,但是停止。我最喜歡的是每個鏈接後跟一個換行符,但我顯然混淆了語法。
我希望這是有道理的。
你的代碼味道在許多地方。無論如何,你是否希望你的方法返回一個包含由換行符分隔的鏈接標籤的字符串? –