我有一个rails应用程序,我在我的视图上使用一个复选框来确定我的if语句的哪个部分运行。我认为这将是一项简单的任务,但即使单击提交按钮后控制台中的响应显示:“成人”=>“0”(未选中时)和“成人”=>“1”(选中时)但如果我试试
puts @application.adult
控制台只打印真实的
这是我的.html.haml文件的相关部分......这是我最近的尝试
=simple_form_for( :application, :url => users_partner_acceptance_path( application ), :method => :put ) do | f |
.clearfix
.column
=f.input :full_name, label: 'Full Name', placeholder: 'Full Name'
.help-block * please enter your legal name
=f.input :address_1, label: 'Address', placeholder: 'Apartment, Street'
=f.check_box_tag :adult, inline_label: 'I am over 18 years old.', as: :boolean, checked = true
.guardian
=f.input :guardian_full_name, label: 'Guardian Full Name', placeholder: 'Full Name'
=render 'partner_details_errors', application: application
=f.submit 'Show Contract', class: 'btn btn-primary', data: { 'text' => 'Create Contract', 'disabled-text' => 'Creating ...' }
我试过
{:checked=> true}
和
checked: true
而不是
checked = true
可能还有其他几个 我试过了
=f.check_box :adult
和
=f.input :adult
而不是
=f.check_box_tag :adult
在我的控制器中,我正在尝试做这样的事情:
if @application.adult == true
# do something
else
# do something else
end
任何建议,帮助非常感谢。谢谢!
我正在使用Rails 3.2.12
答案 0 :(得分:0)
check_box_tag(name, value = "1", checked = false, options = {})
如果成人是Application类的一部分,那么您需要f.check_box
而不是f.check_box_tag
。否则,您应该只有check_box_tag...
。
= f.label :adult, "I am over 18 years old."
= f.check_box, :adult
您可以在提交时发布params
哈希的内容吗?仅供参考,您不需要if @application.adult == true
因为if已经这样做了。
答案 1 :(得分:0)
<%= f.check_box :hobby, {:multiple => "true"}, "hockeys", nil %>
<%= f.check_box :hobby, {:multiple => "true"}, "cricket", nil %>
这对您有所帮助。