concat と ブロック付きの content_tag を組み合わせてつかうとき、
concat content_tag(:div) do
concat content_tag(:span, "Sample")
end
とすると、
<div></div>
と出力されてしまう。
concat(content_tag(:div) do
concat content_tag(:span, "Sample")
end)
とすれば、
<div><span>Sample</span></div>
期待通りに出力される。
前者の場合、content_tag に付属させることを意図したブロックが実際には concat に渡されるため、とのことです。