form_tag в haml создает форму без ввода - PullRequest
0 голосов
/ 07 декабря 2018

Приложение - rails 3. После ответа 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_box и button_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 голосов
/ 08 декабря 2018

Я думаю, проблема в том, что вы должны были использовать check_box_tag, так как его form_tag, также хорошо использовать do, также вам нужно сделать отступ для тегов% td внутри% th

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