haml中的form_tag创建没有输入的表单

时间:2018-12-06 22:33:55

标签: ruby-on-rails ruby haml

该应用程序是rails3。在js响应之后,以下片段将在div中呈现:

  = form_tag("/admin/limits/change/#{user.id}", :remote => "true") do
    %th{:scope => "row"}= index+1
    %td= user.email
    %td.text-center= user.domain || "null"
    %td.text-center
      = check_box :details, 'limit', { :checked => (user.details && user.details.limit.eql?("hard")) }, 'hard', 'soft'
    %td.text-center
      = button_tag 'Set limit' , class: 'btn' , type: :submit

问题在于表单似乎忽略了do语句。缩进后的内容均不包含在内。这是一个没有提交的空表格。以下所有行,包括check_boxbutton_tag,都在外部呈现。

<form accept-charset="UTF-8" action="/admin/limits/change/5" data-remote="true" method="post"></form>

尝试使用submit_tag而不是button_tag,但不能解决问题。均不添加form_tag .. do |f|

1 个答案:

答案 0 :(得分:0)

我认为问题在于您应该使用check_box_tag,因为它是一个form_tag,也可以使用do,但是您还需要在%th内缩进%td标签

 = form_tag("/admin/limits/change/#{user.id}", :remote => "true") do
   %th{:scope => "row"}= index+1
     %td= user.email
     %td.text-center= user.domain || "null"
     %td.text-center= check_box_tag :details, 'limit', { :checked = (user.details && user.details.limit.eql?("hard")) }, 'hard', 'soft'
     %td.text-center= button_tag 'Set limit' , class: 'btn' , type: :submit