布尔枚举抛出在Rails-Admin中,对于false值,Action不能为空

时间:2014-11-04 18:28:20

标签: ruby-on-rails ruby enums rails-activerecord rails-admin

我有一个rails_admin表单(使用rails4 ruby​​ 2.0),带有一个布尔字段:action表示Credit或Debit操作。

我使用了字段的枚举,它在选择Credit(true)选项时起作用。 但在保存'操作不能为空'时会抛出验证错误。

我有以下代码。

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的文档,但无法解决问题。

任何人都可以建议任何解决方案或指出我错过了什么?

2 个答案:

答案 0 :(得分:0)

知道了!

这是验证:在线状态=>如果字段操作失败并返回false值,则为true。 由于false.present?始终返回false。

答案 1 :(得分:0)

对于那些试图验证Boolean是否存在的用户,您不能使用presence: true。您需要使用inclusion: { in: [ true, false ] }

出于某种疯狂的原因,false.present? #=> true

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