ruby-on-rails 对于Rails-Admin中的false值,操作不能为空

bpzcxfmw  于 2023-02-01  发布在  Ruby
关注(0)|答案(2)|浏览(93)

我有一个rails_admin表单(使用rails4 ruby 2.0),包含一个布尔型字段:表示贷方或借方动作的动作。
我已经为选择Credit(true)选项时有效的字段使用了枚举。但是在保存时抛出验证错误“Action can't be blank”。
我有以下代码。

field :action, :enum do
  enum do
    [['Credit', true], ['Debit', false]]
  end
end

我还尝试通过将枚举用作方法来交换枚举的用法。

def action_enum
  [['Credit', true], ['Debit', false]]
end

但是到目前为止还没有任何效果。我试着浏览了rails_admin wiki的文档:https://github.com/sferik/rails_admin/wiki但无法解决问题。
有没有人能提出任何解决方案或指出我错过了什么?

zf2sa74q

zf2sa74q1#

对于那些试图验证Boolean是否存在的用户,不能使用presence: true
您需要用途:

inclusion: { in: [ true, false ] }

出于某种疯狂的原因,这是一件事:

false.present? #=> true

按照https://github.com/rails/rails/issues/22962

rjjhvcjd

rjjhvcjd2#

好了!
由于false.present?始终返回false,因此现场措施的确认:presence =〉true失败。

相关问题