我创建了一个具有布尔字段的模型,但是当捕获它给我的值 1 或 0 时。我发现这是因为布尔值的 BSON 类型是“\x00”和“\x01”。
所以我的问题是,如何获得该字段的“布尔”值?我是否需要在模型或控制器上执行一个方法,如果值为 1,则返回 true,如果为 0,则返回 false?或者 Mongoid 会为我做这件事吗?
Mongoid 版本: 4.0.0 38de2e9
编辑 蒙戈壳
db.feedbacks.find().limit(1).pretty()
{
"_id" : ObjectId("52290a2f56de969f8d000001"),
"like" : "1",
...
}
解释:
我用脚手架创建了一个应用程序:
rails g scaffold 反馈喜欢:Boolean
当我插入一条新记录时,在 Mongo 中,文档保持不变。当我做 Feedback.first 时,模型中的字段具有“0”或“1”值。
class Feedback
include Mongoid::Document
include Mongoid::Timestamps
field :comment, type: String
field :like, type: Boolean
def isLike?
like=="1"
end
end
这是回购: https ://github.com/afucher/4kFeedback/blob/master/app/models/feedback.rb