布尔属性未通过check_box保存

时间:2014-05-30 23:06:23

标签: ruby-on-rails boolean form-helpers

我有一个Job模型,其属性为:rush,它是一个布尔值。我使用check_box表单助手来切换:rush。

复选框表单元素:

<%= check_box_tag(:rush) %>
<%= label_tag(:rush, "Rush?") %>

我的强参数方法:

def job_params
  params.require(:job).permit(:recipient, :age, :ethnicity, :gender, :height, :weight, :hair, :eyes, :other_info, :instructions, :user_id, :company_id, :case_id, :rush, addresses_attributes:[:id, :label, :addy, :apt, :city, :state, :zip ] )
end

创建操作:

def create
  @job = Job.new(job_params)
  @job.user_id = current_user.id

  if @job.save
    redirect_to current_user
  else
    render 'new'
  end
end

提交表单时,它不会保存:赶紧包括嵌套属性在内的所有其他属性保存得很好。 我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

因为你的功能说:

params.require(:job).permit(:recipient, :age, :ethnicity, :gender, :height, :weight, :hair, :eyes, :other_info, :instructions, :user_id, :company_id, :case_id, :rush, addresses_attributes:[:id, :label, :addy, :apt, :city, :state, :zip ] )

然后您希望:rush嵌套在:job内,即params[:job][:rush]。所以你应该将它嵌套在html中的job属性中:

<%= check_box_tag("job[rush]") %>

这应该有效。