ruby-on-rails - Boolean Enum throws Action can't be blank for false value in Rails-Admin

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

我有一个带有 bool 字段的 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但无法解决问题。

任何人都可以提出任何解决方案或指出我缺少的是什么吗??

最佳答案

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

你需要使用:

inclusion: { in: [ true, false ] }

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

false.present? #=> true

根据 https://github.com/rails/rails/issues/22962

关于ruby-on-rails - Boolean Enum throws Action can't be blank for false value in Rails-Admin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26742368/

相关文章:

ruby-on-rails - Rails 3中如何修改事件记录查询结果属性值

c - 如何通过将参数传递给 Autoconf 来取消定义 HAVE_[function] 宏?

ruby - Ruby 中的字符串连接

c# - 在 C# 中获取通用标志枚举值

c# - 在 C# 中处理 switch case 的更好方法

c - 这可能使用 typedef 枚举的成员吗?

ruby-on-rails - 如何让考拉与Omniauth完美搭配?

mysql - Gem::LoadError: 添加 `gem ' mysql'` 到你的 Gemfile

ruby-on-rails - 在 Ruby 中查询 ActiveRecord sqlite 数据库时出错

css - 带有中断线的文本在 Rails 中不起作用