【发布时间】:2014-12-10 15:23:34
【问题描述】:
有没有办法在where 中使用过滤条件,它不是数据库列。如果我有一个Movie 模型,方法如下:
def blockbuster?
imdb_rating > 8
end
有没有办法做类似Movie.where(:blockbuster? => true) 的事情。我知道在这个特定的示例中,可以只使用imdb_rating 属性(Movie.where('imdb_rating > ?', 8)),但在某些情况下,方法执行更复杂的逻辑。目前,如果我想这样做,我必须调用Movie.all.select(&:blockbuster?),但我想在数据库级别这样做。谢谢。
附:我确信类似的问题被问了很多次,但我似乎想不出合适的关键字来在这里或谷歌上找到它们。如果在其他地方回答,请发布链接。
【问题讨论】:
标签: ruby-on-rails activerecord where