class Post < ApplicationRecord
extend Enumerize
CATEGORY_LIST = %w(A B C).freeze
enumerize :category, in: CATEGORY_LIST
end
假如数据库里面有一条 post id = 4
数据的 category
是 D
,不在 CATEGORY_LIST
里面,这时候
Post.where(category: nil) => []
Post.find(4) => category: nil
这个时候就觉得很不可思议,为啥用 where
查 category
为 nil
的数据返回是空数组,而单独查却有 category
是 nil
的呢?
后来证实 category
是 D
不在 CATEGORY_LIST
中,就会被 enumerize
读取为 nil
网友评论