我正在尝试使用内容标记插入一些描述的页面
def spec_description(name, overview, detail)
content_tag :dl do
content_tag :dt do
content_tag(:strong, name)
end
content_tag :dd, overview, :class => "spec-overview"
content_tag :dd, detail, :class => "spec-detail" #only this dd tag gets output
end
end
但实际上,只有带有'详细信息'的dd标签才会输出到html
已更新 输出html现在是这样的:
<dl>
<dd>some detail from detail variable</dd>
</dl>
查看“概述”和“名称”dd标签是如何完全丢失的?更不用说他们的内容......
有谁知道为什么会这样,以及我如何解决它?
答案 0 :(得分:7)
你的帮助器返回一些HTML,它的返回值是content_tag :dl
返回的值。 <dl>
的内容将是其块返回的内容,并且块返回最后一个值(即最后<dd>
)。所以你只有一个返回值问题:
def spec_description(name, overview, detail)
content_tag :dl do
html = content_tag :dt { content_tag(:strong, name) }
html += content_tag :dd, overview, :class => "spec-overview"
html += content_tag :dd, detail, :class => "spec-detail"
html
end
end