Rails 中的范围和范围

2024-03-27

有人可以解释一下这个方法的作用以及我可以传递给它什么吗?

scoped(options = nil)
Returns an anonymous scope.

那么作用域方法的作用是什么?读完文档后我不明白。


在 ActiveRecord 中,所有查询构建方法(例如where, order, joins, limit等等)返回一个所谓的scope。仅当您调用类似的踢脚方法时all or first执行构建的查询并返回数据库的结果。

The scoped类方法还返回一个范围。默认情况下,返回的范围为空,这意味着结果集不会受到任何限制,这意味着如果执行查询,将返回所有记录。 您可以使用它来提供“空”替代方案,如按日期查询MurifoX 的示例。 或者您可以使用它将多个条件组合到一个方法调用中,例如:

Model.scoped(:conditions => 'id < 100', :limit => 10, :order => 'title ASC')

# which would be equivalent to
Model.where('id < 100').limit(10).order('title ASC')

The scope类方法允许您定义一个也返回范围的类方法,例如:

class Model
  scope :colored, lambda {|col|
    where(:color => col)
  }
end

可以这样使用:

Model.colored

范围的好处是你可以(几乎)按照你的意愿组合它们,所以以下是绝对可能的:

Model.red.where('id < 100').order('title ASC').scoped(:limit => 10)

我也强烈建议阅读http://guides.rubyonrails.org/active_record_querying.html http://guides.rubyonrails.org/active_record_querying.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 中的范围和范围 的相关文章

  • 如何在配置/初始化程序中使用 YML 值

    我正在努力将 Facebook 集成到我的应用程序中 为此 我使用 koala devise 和omniauth 对于考拉 我有 config facebook yml development app id 123123132123 sec
  • 在模型中的方法中捕获异常时重定向

    我正在使用 Authlogic connect 连接各种服务提供商 user rb中有一个方法 def complete oauth transaction token token class new oauth token and sec
  • Rails 3 公司帐户具有许多用户,限制对数据的访问

    我想知道在我的应用程序中构建身份验证 授权的最佳方法 我希望有 许多公司帐户 可能使用子域 帐户有很多用户 用户只能访问自己或具有相同帐户的其他用户创建的记录 我所做的研究提供了许多混合搭配的想法 以奇怪而美妙的方式组合 devise ca
  • ruby中如何获取屏幕分辨率

    如何在ruby脚本中获取屏幕分辨率 高度 宽度 在 Linux 上 x y xrandr scan current d x d flatten 在 Windows 上 使用WIN32OLE等 http www ruby forum com
  • Rails 模型中的多个 counter_cache

    我正在学习 Rails 遇到了一个小问题 我正在编写带有任务列表的非常简单的应用程序 因此模型看起来像这样 class List lt ActiveRecord Base has many tasks has many undone tas
  • 在 652 毫秒内完成 200 OK(查看次数:50.9 毫秒 | ActiveRecord:18.3 毫秒)

    我试图理解 Rails 日志中的这一行 如果我的视图只花费了 50 9 毫秒 为什么它花费了 652 毫秒 Thanks 如果您在开发环境中运行应用程序 则必须根据每个请求重新加载大量应用程序文件 这就是我对为什么要花这么长时间的猜测 你可
  • Ruby 反向柯里化:这可能吗?

    关于 Ruby 1 9 x 中的柯里化 我一直在某些地方使用它 并且可以像基本上支持 proc 参数的默认参数一样进行翻译 p proc x y z x y z p curry 1 gt returns a lambda p curry 1
  • 在 Rails 上制作 ruby​​ 占用更少的内存

    我正在尝试运行 Ruby on Rails 项目 redmine http www redmine org 在 VPS 上 它可以工作 但需要相当多的内存 与 VPS 的其余部分相比 rails 应用程序的使用量非常少 我的服务器上也运行着
  • Rails-自定义删除前确认对话框的视图

    要删除 Rails 中的记录 我使用此代码 result of which I get dialog box like this But I wants this dialog box to look like this 有没有办法自定义确
  • Devise/CanCanCan - 允许管理员创建新用户

    我正在使用 Rails 4 0 2 设计并康康康 https github com CanCanCommunity cancancan 我正在尝试允许管理员创建新用户 管理员用户在用户表中分配有一个布尔字段 在ability rb中我有以下
  • Rails 中的多列主键

    我正在尝试将桌面应用程序迁移到rails 还处理相当老式的现有数据库 问题是我在一列中没有唯一的 ID 但表的三列保证了记录的唯一性 鉴于我有三个表 authors author name author letter author nr1
  • Rails_admin 中的范围作为过滤器

    我在我的应用程序中使用rails admin 我的模型上有一些范围 以下是一个示例 class User lt ActiveRecord Base scope unconfirmed where confirmed at IS NULL e
  • 如何让 mysql 输出 DateTime 到儒略日数?

    基本上我正在使用用于 Ruby 的 MySQL gem http www tmtm org en mysql ruby 并且我对日期比较没有合理的支持 这Mysql Time类只为我提供了访问器方法 如年 月 秒等 如果我可以将其转换为 R
  • 设计...用户模型的附加列未验证

    我正在 Rails 3 应用程序中使用 Devise 进行身份验证 我通过 db migrate 将名字和姓氏列添加到数据库中 注册表修改如下 p br p p br p
  • 如何按值降序对哈希进行排序并在 ruby​​ 中输出哈希?

    output sort by k v v reverse 和钥匙 h a gt 1 c gt 3 b gt 2 d gt 4 gt a gt 1 c gt 3 b gt 2 d gt 4 Hash h sort 现在我有这两个 但我试图按值
  • 具有多个可选参数的 Rails 3 路线

    我正在尝试创建一个具有可选参数和不同顺序的 Rails 路线 这个问题描述了一个类似的问题 具有多个 可选且漂亮参数的路由 https stackoverflow com questions 14007593 routes with mul
  • ruby on Rails id 不保存

    我知道这违反了 ruby on Rails 约定 但我的这个表的 id 不需要自动递增 我是通过逻辑设置它的 但是 它不会保存到数据库 保存的所有内容都将保存为 id 的空值 def self up create table probes
  • 如何将openId与rails 3中的设备集成

    我是 Rails 新手 刚刚完成了一个简单的设计设置 我正在寻求实现一些仍然使用核心设计功能集但允许通过 openid 提供商登录而不是 使用电子邮件或用户名注册 的东西 我如何开始使用最新的设计宝石和rails 3 看看devise op
  • AJAX Rails 验证

    我的表单和验证可以很好地处理常规的 http 请求 我希望它使用 AJAX 我知道我可以在客户端进行验证 但这似乎是多余的 因为我已经在模型中定义了验证 当用户填写表单时 我想就他们的条目向他们提供反馈 在 AJAX 表单中使用 Rails
  • 如何使用回形针对多页 pdf 进行缩略图

    我想让 Paperclip 为上传的多页 PDF 文件的每一页创建 2 个缩略图 我正在运行 Paperclip 2 3 1 1 并在我的资产模型中使用它 has attached file asset styles gt medium g

随机推荐

  • 防止使用 PHP CURL 的远程脚本登录网站

    有哪些方法可用于保护登录页面不被远程 PHP 脚本使用 CURL 登录 检查引荐来源网址和用户代理将不起作用 因为它们可以使用 CURL 设置 理想的解决方案是在不使用验证码的情况下解决这个问题 这就是这个问题的重点 试图弄清楚这是否可能
  • 导入的样式不会应用于组件

    我想创建单独的文件来存储 IE 9 11 的样式 为此 我创建并导入了文件InternetExplorer scss进入 主文件styles scss import scss InternetExplorer scss The Intern
  • 错误:存在部署错误

    当我尝试运行任何示例应用程序或新应用程序时 它显示此错误 有人可以帮忙吗 该错误告诉您尚未选择设备 运行应用程序之前请选择有效的设备 您需要选择一个物理手机 或 Android 模拟器 来部署应用程序 Ref 在设备上调试 https de
  • 及时编译 - 存储与始终执行[重复]

    这个问题在这里已经有答案了 可能的重复 为什么 JVM 不缓存 JIT 编译的代码 https stackoverflow com questions 1992486 why doesnt the jvm cache jit compile
  • Rspec、Cucumber:最佳速度数据库清理策略

    我想提高测试速度 我应该使用use transactional fixtures或与database cleaner gem 哪种database cleaner策略是最好的 我注意到 从迁移后 truncation to transact
  • 线程:在 GUI 线程之外使用像素图是不安全的

    我正在构建一个音乐播放器 它使用 SqueezePlay 一个 SqueezeBox 控制器应用程序 检查状态 长话短说 我使用线程每 5 秒检查一次 Squeezeplay 的状态 如果歌曲标题发生变化 我让它更新标签 Qlabel 专辑
  • MySql。如何使用自加入

    我需要在此表上使用自连接 Country Rank Year France 55 2000 Canada 30 2000 Liberia 59 2001 Turkey 78 2000
  • spring在单元测试中使用application.properties吗?

    我的项目使用 Spring Boot 当我运行我的应用程序时 如果我运行我的单元测试 RunWith SpringJUnit4ClassRunner 我得到以下错误 我不知道为什么spring在单元测试中没有使用application pr
  • 如何使用表头视图内的排除路径正确调整文本视图的大小

    我在 tableView 标题中添加了一个视图 其中包含 imageView 和 textView 图像视图在顶角左对齐 文本视图在图像视图上延伸到屏幕的右侧 如下所示 textView 可以有动态内容 并具有如下设置的排除路径 let i
  • Google Play 商店安全警报称您的应用程序包含易受攻击的 JavaScript 库,如何删除安全警告?

    在 Google Play 商店中 我收到如下警告 您的应用程序包含一个或多个存在已知安全问题的库 请看这个Google 帮助中心文章 https support google com faqs answer 9464300了解详情 易受攻
  • MySQL 数据库导入错误#1064

    我有一个 SQL 数据库 我想使用 phplyadmin 导入该数据库 但出现此错误 CREATE TABLE wp commentmeta meta id BIGINT 20 UNSIGNED NOT NULL AUTO INCREMEN
  • 在非 CCK Drupal 表单中“添加另一个项目”

    Drupal 的 CCK 具有一个方便的功能 即允许单个 CCK 字段通过 添加另一个项目 按钮接受多个值 从而在节点中生成数据数组 我想知道是否有任何简单的方法可以将其适应我要调用的非 CCK 表单drupal get form 我宁愿不
  • 尝试防止将重复值添加到数组中。

    当我在点击事件上向数组添加重复值时 我的项目遇到了问题 当我将单击的项目的值推入数组时openedCards push card 该代码允许将多个项目值添加到数组中 从而创建与单个项目匹配的值 我尝试像这样包装这段代码if inArray
  • “AuthDataResult”类型的值没有成员“providerID”Firebase 5.0

    我在使用最新版本的 FirebaseAuth 5 0 时遇到问题 这是我的代码 func registerUser withEmail email String andPassword password String userCreatio
  • AHK:在 Numlock 打开时重新映射数字键盘,使其行为类似于在 Numlock 关闭时的数字键盘

    我想重新映射 Numlock On 的数字键盘 使其表现得像 Numlock Off 的数字键盘 包括能够在按住 Shift Ctrl 的情况下扩展选择范围 我遇到的问题如下 Numpad8 Up 当按下 shift numpad8 时 光
  • JQuery DataTables - 行分组、求和、可折叠、导出

    我已经使用 JQuery DataTables 很长时间了 这是我第一次使用行分组 我找到了一个很好的例子来说明我想从哪里开始 Grouping http www cscc edu resources app data datatables
  • 具有自定义行布局的多选警报对话框

    我需要创建一个包含多个选择项的 AlertDialog 但在尝试将自定义布局文件设置到内部 ListView 时遇到一些麻烦 对于单选项 我使用一个以 ListAdapter 作为参数的构造函数 这样我可以为每行设置正确的布局资源 buil
  • 使用 jQuery 获取网站信息

    使用 jQuery 有没有办法获取网站信息 可能是元数据和图像 我想要完成的一个例子是 当我在 Facebook 上分享链接时 它会提取相关图像并显示网站 文章 中的文本简介 有没有办法使用 jQuery 使用 ajax 轻松完成此任务 好
  • Typo3 在特定页面的 body 标签中添加类

    我试图弄清楚如何有条件地将类添加到特定页面的正文标记 我试图通过typoscipt 来做到这一点 但一直无法弄清楚 也许有更好的方法来做到这一点 该网站使用的是 Typo3 版本 4 4 6 我试过这个没有用 page 4 bodyTag
  • Rails 中的范围和范围

    有人可以解释一下这个方法的作用以及我可以传递给它什么吗 scoped options nil Returns an anonymous scope 那么作用域方法的作用是什么 读完文档后我不明白 在 ActiveRecord 中 所有查询构