Ruby & Rails

enumerize 带来的小问题

2019-03-20  本文已影响0人  云莉6
class Post < ApplicationRecord
  extend Enumerize
  CATEGORY_LIST = %w(A B C).freeze
  enumerize :category, in: CATEGORY_LIST
end

假如数据库里面有一条 post id = 4 数据的 categoryD,不在 CATEGORY_LIST 里面,这时候

Post.where(category: nil) => []
Post.find(4) => category: nil

这个时候就觉得很不可思议,为啥用 wherecategorynil 的数据返回是空数组,而单独查却有 categorynil 的呢?
后来证实 categoryD 不在 CATEGORY_LIST 中,就会被 enumerize 读取为 nil

上一篇 下一篇

猜你喜欢

热点阅读