テンプレートに次のヘルパーがあります。
= link_to t(:site_count, :count => account.subdomains.count ), "#", :rel => 'tooltip', :title => 'Sites', :class => :nofsite, :'data-placement' => "right", :'data-content' => account_sites_html(account), :'data-html' => true
account_sites_html(account) ヘルパーを使用してアカウント サイトとそのロケールを一覧表示する
私のヘルパーは html を正しく生成していますが、言語スパンの :class に問題があります:
def account_sites_html(account)
sites = account.subdomains.map {|subdomain| [subdomain.site[:hostname], subdomain.languages]}.uniq
html = content_tag(:ul) do
sites.collect do |site|
content_tag(:li) do
content_tag(:span, "#{site[0]}")
site[1].collect do |language|
content_tag(:span, "#{language}", :class => "babFlag-#{language}")
end.join.html_safe
end
end.join.html_safe
end
return html.html_safe
end
これは以下を生成します:
"<ul><li><span class=\"babFlag-en\">en</span><span class=\"babFlag-fr\">fr</span></li></ul>"
これはひどく表示されます....しかし、戻る前にコンソールでhtml変数をデバッグして変更すると:
"<ul><li><span class='babFlag-en'>en</span><span class='babFlag-fr'>fr</span></li></ul>"
それなら大丈夫です...私のクラス文字列の何が問題になっていますか?