我在 Product 模型中有 notes 属性,文本为“something, something else”。在我想看到的视图中:
<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>
怎么了?