【问题标题】:The Haml form tag includes nothing on Rails 3Haml 表单标签在 Rails 3 中不包含任何内容
【发布时间】:2013-11-08 03:37:02
【问题描述】:

我认为 Haml 中可能存在错误?或者我错过了什么 表单标签应该包含输入元素,但它没有。

<form accept-charset="UTF-8" action="/remote_focus/kill_running_task" data-remote="true" method="get"></form>
            <tr>
              <td>...

我期望它在哪里

<form accept-charset="UTF-8" action="/remote_focus/kill_running_task" data-remote="true" method="get">
                <tr>
                  <td>...
</form>

这是我的haml文件,从一个数组中迭代每个任务,

  - @running_tasks.each do |running_task|        
    = form_tag kill_running_task_remote_focus_path, :method => :get, remote: true do
      %tr
        %td
          = running_task[:user]
        %td 
          = running_task[:ip]
        %td 
          = running_task[:time]
        %td 
          = running_task[:pid]
          = hidden_field_tag :task, running_task[:pid]
        %td
          = submit_tag "Kill This Task" ,:class=> "btn btn-primary autotest"

【问题讨论】:

  • 看起来不错。尝试在 do 之前用 () 包围 form_tag 参数?也尝试不包括那些 tds 但只包括提交标签?这意味着将您的 form_tag 放在最后一个 td 中。
  • 旁注,如果要删除某些内容,请使用method: :delete,而不是get
  • 您如何查看生成的代码?请注意,将 trs 直接嵌套在 form 中不是有效的 HTML。如果您使用浏览器的检查器查看源代码,您将看到浏览器“修复”它之后的 DOM。确保您正在查看实际来源以查看生成的内容,并确保其有效。
  • 嗨@matt,你应该回复你的建议作为答案。因为您的解决方案对我有用。非常感谢。

标签: html ruby-on-rails haml erb


【解决方案1】:

除了形式之外,更简单的标签是button_tolink_to。 UJS 会自动将remote: truemethod: :delete 转换为表格。所以

// Remove the previous form_tag
%td
  = button_to kill_running_task_remote_focus_path, :method => :delete, remote: true

【讨论】:

    【解决方案2】:

    尝试删除所有 tr td 并尝试一次。

    【讨论】:

      猜你喜欢
      • 2015-06-30
      • 1970-01-01
      • 2014-01-19
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 2011-04-29
      • 1970-01-01
      相关资源
      最近更新 更多