【问题标题】:Rails - simple form - boolean attribute not accepting false/no radio button choiceRails - 简单形式 - 布尔属性不接受错误/无单选按钮选择
【发布时间】:2016-08-08 08:28:32
【问题描述】:

我正在使用简单的表单(使用引导程序)制作一个 Rails 应用程序。

我的表单中有这个问题:

<%= f.input :ethics, as: :radio_buttons, label: 'Is an ethics review relevant?' %>

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

表单以是/否单选按钮呈现。

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

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

日志显示:

Processing by ProjectsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"", "project"=>{"title"=>"asdfsdf ", "byline"=>"", "description"=>"asdfsdf ", "problem"=>"", "solution"=>"", "remark"=>"",  "ethics"=>"false", 

【问题讨论】:

  • 能否粘贴提交表单时看到的 Rails 服务器日志?
  • 添加从请求到响应的完整日志。
  • 还有错误消息an answer is required,但我在日志中看不到任何此类字段。您有名为 Answer 的模型吗?

标签: ruby-on-rails forms simple-form


【解决方案1】:

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

params.require(:project).permit(..., :ethics)

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

使用

validates :ethics, inclusion: { in: [ true, false ] }

【讨论】:

  • 我试图从 OP 那里知道你猜是为了确保我自己。但是OP没有提供进一步的日志-_-
  • 不 - 它就在那里。如果我选择是单选按钮,我不会收到错误消息。
  • @Mel 您使用的是什么 DBMS?
  • 您是否在模型中对该字段进行了验证?哪个验证?你能告诉我们吗?
  • 模型中存在存在验证。我不知道 DMBS 是什么意思。
猜你喜欢
  • 2016-11-01
  • 2011-07-24
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-24
  • 2016-04-20
  • 1970-01-01
相关资源
最近更新 更多