【发布时间】:2019-08-21 21:41:39
【问题描述】:
谁能告诉我有关范围的信息?我已经阅读了 Rails 指南,但仍然想知道它是如何工作的?
【问题讨论】:
标签: ruby-on-rails
谁能告诉我有关范围的信息?我已经阅读了 Rails 指南,但仍然想知道它是如何工作的?
【问题讨论】:
标签: ruby-on-rails
Scope 添加了一个类方法用于检索和查询对象。
考虑一个简单的例子 您有一张名为 shirts 的表,其中包含列颜色等等。现在,如果您想要红色的衬衫,那么您可以在衬衫模型中简单地这样做
class Shirt < ActiveRecord::Base
scope :red_shirts, -> { where(color: red) }
end
现在,您只需执行以下操作即可访问红色衬衫:
Shirt.red_shirts.each do
#do_something
end
您也可以使用类方法,但需要一些额外的工作。范围更喜欢返回范围,因此它们很容易链接在一起。
【讨论】: