【问题标题】:haml rails forms - html appearing raw instead of rendering as htmlhaml rails 表单 - html 显示为原始而不是呈现为 html
【发布时间】:2013-01-11 18:12:49
【问题描述】:

我正在使用 haml 3.1.4 和 haml-rails 0.3.5

我遇到的问题只出现在服务器(生产)和本地(测试)上,但没有出现在开发中(两者似乎都使用相同的 gem 版本)

=form_for @thing, :remote => true do |f|
  =hidden_field_tag :template, 'thing'
  %table
    %thead
      %tr
        %th
          Name
        %th
          =image_tag 'cancel.png'
    %tbody
      =f.fields_for :items do |item_fields|
        %tr
          %td
            =f.text_field :name
          %td
  =f.submit 'Save'

它输出以下html保存文本:

<input type='hidden' value='thing' /><table><thead><tr><th>Name</th><th><img src='cancel.png.....' /></tr></thead>

接着是上面渲染的html。

如何缩小测试/生产和开发之间的差异?

有什么想法吗? :)

编辑: 值得一提的是,这是页面上“@thing”的第二种形式。第一个渲染得很好,第二个是问题所在。

【问题讨论】:

  • 我认为您不应该在 form_for 行上有“=”。试试“-form_for”。我以前被这个绊倒过,虽然奇怪的是你在开发中看到了不同的行为。
  • 您需要=,因为它会输出表单 HTML 标记。
  • 所以关闭&lt;/thead&gt;后的渲染输出都像&amp;lt;tbody&amp;gt;一样转义了?另外,您是否错过了结束&lt;/th&gt; 或者这是问题的一部分?
  • 我检查了生产 Gem.loaded_specs 的 haml 版本,它们与开发相同。我真的希望这是问题所在。
  • Haml 应该会生成收盘价

标签: ruby-on-rails haml


【解决方案1】:

我有几个理论。

空格在haml中非常重要。是否有可能您在某处有标签,而在其他地方有空格?

你的form_fors 都有remote: true 吗?这会创建一些额外的 div 输出,我认为如果它重用 id 可能会混淆 DOM。

您确定在form_for 上使用=,因为没有它,它不会输出HTML 表单标签。

恐怕我只是在猜测,这些都不能解释为什么它在开发中起作用。

或许有帮助……

【讨论】:

    【解决方案2】:

    从外观上看,您没有关闭标签,这是您的问题吗?无论如何,关于缩小 test/prod/dev 之间的差异,您确实需要查看 /config/ 文件夹的内容。我可以建议您使用Rails.env == "development" 来选择您的环境进行测试,然后尝试调试器 并寻找差异。

    【讨论】:

    • haml 不需要结束标签。
    • 好吧,html 输出没有显示结束标签,所以我把它当作%td =f.text_field :name %td 一样,%table 可能也需要一个想法。
    【解决方案3】:

    您可能正在使用两种不同版本的haml。可能是一个版本对“=”之后的空格更严格。我会这样写:

    = form_for @thing, :remote => true do |f|
      = hidden_field_tag :template, 'thing'
      %table
        %thead
          %tr
            %th Name
            %th= image_tag 'cancel.png'
        %tbody
          = f.fields_for :items do |item_fields|
            %tr
              %td= f.text_field :name
              %td
      = f.submit 'Save'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-25
      • 2011-03-10
      • 2013-08-11
      • 2018-02-08
      • 2015-02-08
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      相关资源
      最近更新 更多