check_box无法在haml form_for中运行

时间:2015-11-26 10:54:34

标签: ruby-on-rails ruby forms checkbox haml

我使用form_for标签创建了一个表单。我必须使用内联标签(例如

)创建一个check_box字段

[复选框]请选中此选项

我一直在尝试许多对我有用的选项,但这次它甚至都看不到。当我检查元素时,我得到这样的值。

 = form_for (@subscription ||= Subscription.new),  :html => { :class => "validate formtastic franchise_application", }, url: '/contact_information', :id => "advanced_subscription_form",  :method => "post" do |f|
  %div

    %p
      = f.check_box :is_subscribed, :type => "visible", :value => "1", :checked => "1", :label => "Check here"

输出是这样的                     

<input name="subscription[is_subscribed]" value="0" type="hidden">
<input value="1" name="subscription[is_subscribed]" id="subscription_is_subscribed" type="checkbox">

我尝试了很多方法,但屏幕上看不到复选框               = check_box_tag“subscription [is_subscribed]”,0,:is_subscribed,:visible =&gt;真正            - #= check_box_tag( “is_subscribed”)

      -#= check_box_tag :subscription_is_subscribed, 1, :name => "subscription[is_subscribed]"
      -#%input{:name => "subscription[is_subscribed]", :type => "visible", :value => "1"}
      -#%input#subscription_is_subscribed{:name => "subscription[is_subscribed]", :type => "checkbox", :hidden => "false", :value => "1"}
      -#= f.check_box(:is_subscribed, "1", "1")
      -#= f.check_box('subscription','is_subscribed')
      -#= f.label :is_subscribed, :required => false, :hidden => false do
      -#  There you go
      -#  = f.check_box :is_subscribed, :required => false, :hidden => false, :value => true

第一个现在有一个非常好的html源

= check_box_tag "subscription[is_subscribed]",0, :is_subscribed, :visible => true
<input name="subscription[is_subscribed]" id="subscription_is_subscribed" value="0" visible="true" checked="checked" type="checkbox">

这个隐藏值如何显示在这里。如果有人帮助我,我会非常感激。 我正在使用Ruby2.2.0 Rails 4.2

2 个答案:

答案 0 :(得分:2)

对于带有选中复选框的每个项目,使用check_box辅助轨道,您将获得一个仅具有该属性的额外重影项目,分配为“0”。

实施例

= check_box("user", "terms")
# => <input name="user[terms]" type="hidden" value="0" />
# => <input checked="checked" type="checkbox" id="user_terms" name="user[terms]" value="1" />

在您的情况下,最好使用check_box_tag

= check_box_tag 'terms'
# => <input id="terms" name="terms" type="checkbox" value="1" />

别忘了=开始排队......

答案 1 :(得分:1)

您也可以使用符号......

= check_box_tag "Accept Terms", :terms
= check_box_tag :terms