0

我有一个 Rails 应用程序,我在视图上使用复选框来确定 if 语句的哪一部分运行。我认为这将是一项简单的任务,但即使单击提交按钮后控制台中的响应同时显示:“adult”=>“0”(未选中时)和“adult”=>“1”(选中时)但如果我试试

puts @application.adult

控制台只打印 true

这是我的 .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

4

2 回答 2

0

<%= f.check_box :hobby, {:multiple => "true"}, "hockeys", nil %>

<%= f.check_box :hobby, {:multiple => "true"}, "cricket", nil %>


这将对您有所帮助。

于 2013-10-15T15:00:13.737 回答
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 已经这样做了。

于 2013-03-18T07:40:59.720 回答