ruby-on-rails - 在 Ruby 中, "scoped"是什么意思?

标签 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

“作用域”声明指的是什么? Google 出奇地难。

最佳答案

我认为上面代码片段的本质是:“如果提供了搜索参数,则创建一个 ActiveRecord 查询来限制返回的记录。否则,返回一个空白的石板查询。”因此,“作用域”是一个(名称奇怪的)对象,它代表一个可以在最终执行之前进一步细化的查询。

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

关于ruby-on-rails - 在 Ruby 中, "scoped"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14848345/

相关文章:

ruby-on-rails - Rails 5 仅当属性当前为 nil 时才更新属性

ruby-on-rails - 使用 OmniAuth 时如何指定我需要从用户的 Facebook 帐户获得哪些访问权限?

ruby-on-rails - rspec Controller 测试,获取多个参数

Python 局部变量与全局变量

Python Tkinter、lambda 和回调

ruby-on-rails - 如何简化将多个值插入 Ruby 中的数组?

ruby - 计算数组的统计信息

ruby - 是否可以使用关键字参数传递函数

ruby - 在 Apache 中设置 Ruby CGI

python - 了解 Python 类中的变量范围