Во-первых, это не рекомендуемый способ добавления формы и полей в рельсы. Но, все-таки ответить вам вопрос, вы можете пойти с этим:
%input{ :type => "checkbox", :name => "form", :value => true, :checked => @t.form ? "checked" : ""}
Обратите внимание, что я изменил значение части к true
, как это атрибут значение флажка, который всегда будет иметь то же значение.
Теперь возникла бы другая проблема, если флажок был ранее установлен, и теперь вы снимаете флажок и сохраняете форму, тогда она не сохранит значение «0» из false в базе данных.
В соответствии со спецификацией HTML непроверенные флажки не представляют значения. Однако часто бывает удобно, чтобы флажок всегда отправлял значение.
Теперь, чтобы избежать этой проблемы, вам необходимо также добавить скрытое поле.
%input{ :type => "hidden", :name => "form", :value => false}
%input{ :type => "checkbox", :name => "form", :value => true, :checked => @t.form ? "checked" : ""}
Теперь, если флажок снят только скрытый вход подается, и если он будет установлен, то оба варианта, но значение, представленное флажком имеет преимущество.
Примечание: Я порекомендую вам использовать методы рельсов для создания скрытых полей и флажка.
Update (с form_tag хелперов)
= hidden_field_tag('form', '0')
= check_box_tag("form", '1', @t.form)
Я думаю, что вы используете HAML и форма представляет собой логическое поле в базе данных.
Вы используете simple_form? –
нет, я использую form_tag – user1738017
Проверьте обновленный ответ. –