Rails - 简单形式 - 布尔属性不接受 false/无单选按钮选择

Mel*_*Mel 2 forms ruby-on-rails simple-form

我正在使用简单的形式(带引导程序)制作一个 rails 应用程序。

我的表格中有这个问题:

<%= f.input :ethics, as: :radio_buttons, label: 'Is an ethics review relevant?' %>
Run Code Online (Sandbox Code Playgroud)

道德属性是我表中的一个布尔值。

该表单呈现为是/否的单选按钮。

默认显示为否 - 但如果这是我想给出的答案,我会被卡住,因为我无法提交表单。我收到一个错误,提示需要一个答案。

为什么简单形式不承认 false 作为布尔答案?

日志显示:

Processing by ProjectsController#create as HTML
  Parameters: {"utf8"=>"?", "authenticity_token"=>"", "project"=>{"title"=>"asdfsdf ", "byline"=>"", "description"=>"asdfsdf ", "problem"=>"", "solution"=>"", "remark"=>"",  "ethics"=>"false", 
Run Code Online (Sandbox Code Playgroud)

coo*_*sse 5

您可能只是忘记将该ethics字段添加到控制器中允许的属性列表中。

params.require(:project).permit(..., :ethics)
Run Code Online (Sandbox Code Playgroud)

您也不应该presence在模型中进行验证。因为false是假的,将返回假进行验证。

validates :ethics, inclusion: { in: [ true, false ] }
Run Code Online (Sandbox Code Playgroud)