【问题标题】:Rails 4 deeply nested content tags and stringsRails 4 深度嵌套的内容标签和字符串
【发布时间】:2015-11-23 12:48:07
【问题描述】:

多年来,我一直在用视图助手、连接、安全缓冲区等将我的头撞到墙上,通常我设法糊弄过去,但这次我被难住了。

以下内容取自我的测试结果,应该为您提供一个我试图输出的清晰示例。

实际

<ul><li class="bold-weight up-c disabled-toilet"><div class="center"><span class="icon"></span></div></li></ul>

预期

<ul><li class="bold-weight up-c disabled-toilet"><div class="center"><span class="icon"></span></div>Disabled toilet

所以我唯一不能输出的是“禁用厕所”(以任何方式动态出现)在 li 标签内但在关闭的内部 div 标签之后。

您可以从方法“accessability_sub_level”中看到我正在尝试实现这一点。

  def venue_accessability(venue)
    return unless venue.get_accessability.any?
    content_tag(:ul, nil) do
      venue.get_accessability.map do |va|
        accessability_sub_level(va)
      end.join().html_safe
    end
  end

  private

  def accessability_sub_level(va)
    content_tag(:li, nil, class: "bold-weight up-c #{va[:icon]}") do
      content_tag(:div, nil, class: 'center') do
        concat content_tag(:span, nil, class: 'icon')
      end
      va[:title]
    end
  end

帮助最感激。

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 model-view-controller


    【解决方案1】:

    accessability_sub_level 中的问题是您只从第一个 content_tag 块返回 va[:title]。您必须将其与嵌套的 content_tag 块连接:

    def accessability_sub_level(va)
      content_tag(:li, nil, class: "bold-weight up-c #{va[:icon]}") do
        content_tag(:div, nil, class: 'center') do
          content_tag(:span, nil, class: 'icon')
        end.concat(va[:title])
      end
    end
    

    (这对我来说很难测试/重现,所以这可能不是一个完整的解决方案,它甚至可能根本不起作用......)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 2023-01-12
      相关资源
      最近更新 更多