ビューが重くなってきて、ヘルパーに色々寄せようとしたときに
ハマったのでめもっとく。
メモ
次のようにネストさせてもどうにもうまくいかなかった。
content_tag :div do
'hogehoge'
content_tag :span do
'say';
'uhouho'
end
end
uhouhoしか表示されない。
無理やり文字列操作にしてhtml_safeで出力させようかとおもったけど、
railsのxss対策がダメにしてしまいそうで、やめときました。
なんとかネストできる方法を調べてみると次の方法がありました。
content_tag :div, :class => 'test' do
concat 'hogehoge'
concat ( content_tag :span , :class => 'content' do
concat 'say'
concat 'uhouho'
end)
end
どうやらコンカチすればいけるようです。
業務系SE時代にコンカチ、コンカチゆってるおっさんが大勢いたので、
ふとなつかしくなるメソッドです。
rubyの配列のconcatを使うよりも
rails/action viewのメソッド使った方が便利っす。
http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-concat
参考サイト
http://detham.tumblr.com/post/37466031738/content-tag-tip
http://robots.thoughtbot.com/post/9123352587/nesting-content-tag-in-rails-3