辅助内容html标记输出中的问题

时间:2012-12-13 18:43:45

标签: ruby-on-rails

我的模板中有以下帮助:

= 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但我在语言范围内遇到了问题:

 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>"

然后很好......我的班级字符串出了什么问题?

1 个答案:

答案 0 :(得分:0)

在Rails 3中,需要使用concat

concat(content_tag(:span,“#{site [0]}”))