我在产品型号中有注释属性,文字“有些东西”。 在我想看的观点中:
<div>
<span>Something</span>
<span>Something else</span>
</div>
此外我还有工作代码,但我想要使用装饰器(draper)进行重构,或者使用帮助器。
%div
- product.notes.split(/,/).each do |e|
%span= e.strip.capitalize
在装饰者:
def notes_list
model.notes.split(/,/).each do |e|
h.content_tag(:span, e.strip.capitalize)
end
end
观点:
%div
= product.notes_list
(或帮助者中的类比:
def notes_list(product)
product.notes.split(/,/).each do |element|
content_tag(:span, element.strip.capitalize)
end
end
致电:
%div
= notes_list(product)
)
但是这会返回
<div>
"
["something", " something else"]
"
</div>
有什么问题?
答案 0 :(得分:1)
你的notes_list正在返回product.notes.split(/,/)
尝试
def notes_list(product)
result = product.notes.split(/,/).inject([]) do |result, element|
result << content_tag(:span, element.strip.mb_chars.capitalize)
end
result.join("\n")
end