在Ruby中,“作用域”是什么意思?

时间:2013-02-13 07:18:05

标签: ruby-on-rails ruby scope rails-activerecord

我遇到过这段代码:

def self.search(search)
    if search
      where(['title LIKE ? OR description LIKE ? ', "%#{search}%", "%#{search}%"])  
    else
      scoped
    end
  end

"作用范围是什么"声明是指?这对谷歌来说太难了。

1 个答案:

答案 0 :(得分:3)

我认为上述代码段的本质是:“如果提供了搜索参数,则创建一个限制返回记录的ActiveRecord查询。否则,返回一个空白的slate查询。”所以“scoped”是一个(奇怪命名的)对象,它表示一个可以在最终执行之前进一步细化的查询。

http://guides.rubyonrails.org/active_record_querying.html