我有一个名为Announcement的Mongoid模型:
class Announcement
include Mongoid::Document
include Mongoid::Timestamps
field :message
field :starts_at, type: DateTime
field :ends_at, type: DateTime
field :is_permanent, type: Boolean, default: false
end
此模型上的大部分内容似乎都运行良好:
Announcement.all.count
列出所有公告。
当我通过控制台创建通知时:
Announcement.create(is_permanent: true, message: "Hi", starts_at: "2014-09-30", ends_at: "2014-10-30")
Announcement.where(is_permanent: true).to_a
会返回它:
[#<Announcement _id: 542b5cfa53696d0656010000, created_at: 2014-10-01 01:46:34 UTC, updated_at: 2014-10-01 01:46:34 UTC, message: "Hi", starts_at: nil, ends_at: nil, is_permanent: true>]
但是,当我通过RailsAdmin创建一个带布尔字段的公告时,它会被放入数据库中:
[#<Announcement _id: 542b4eae53696d0552000000, created_at: 2014-10-01 00:45:34 UTC, updated_at: 2014-10-01 01:12:07 UTC, message: "Cookies!", starts_at: nil, ends_at: nil, is_permanent: "1">]
和is_permanent是"1"
。
因此,查询is_permanent: true
不会返回该公告。
这是rails-admin的错误吗?我的设置错过了什么吗?任何帮助/想法都赞赏。
答案 0 :(得分:1)
事实证明,将Mongoid::Boolean
添加到模型中会使Rails Admin插入一个mongoid布尔值,而不仅仅是&#34; boolean&#34;。
field :is_permanent, type: Mongoid::Boolean, default: false