1

我的模板中有以下助手:

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

那没关系...我的班级字符串有什么问题?

4

1 回答 1

0

在 Rails 3 中,需要使用 concat

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

于 2013-01-07T12:58:04.517 回答