我想知道如何正确编写sql中的范围:
Caterer.where('robots NOT LIKE :noindex OR robots IS NULL OR robots IS ?', smr: "%noindex%", "").where(active: true)
现在它看起来真的很难看。
答案 0 :(得分:1)
scope :noindex_robots, -> { where('robots NOT LIKE :noindex OR robots IS NULL OR robots IS ?', smr: "%noindex%", "") }
scope :active, -> { where(active: true) }
并使用它:Caterer.active.noindex_robots
如果你描述noindex_robots背后的逻辑,我也可以尝试重构它。