我有一个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
提交表单时,它不会保存:赶紧包括嵌套属性在内的所有其他属性保存得很好。 我在这里错过了什么吗?
答案 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]") %>
这应该有效。