5
我是Rails的新手,我有一个奇怪的问题。ActiveRecord - “范围”中的“第一个”方法返回多个记录
这里是一个代码示例:
class News < ActiveRecord::Base
scope :pinned, -> { where(pinned: true).first }
end
如果有与“钉”标志的记录是没有问题的,当我叫News.pinned
返回一条记录。
而且我看到这个查询日志中:
SELECT `news`.*
FROM `news`
WHERE `news`.`pinned` = 1
ORDER BY `news`.`id` ASC
LIMIT 1
但是,如果没有记录与“固定”的标志,当我打电话News.pinned
接下来的两个查询被执行:
SELECT `news`.*
FROM `news`
WHERE `news`.`pinned` = 1
ORDER BY `news`.`id` ASC
LIMIT 1
SELECT `news`.* FROM `news`
谢谢!
请包括代码,其中'News.pinned'被称为。 – Victor
嗨,这里是我所说的范围代码: 类NewsController
user3287809
检查'新闻/ index.html.erb',删除所有代码,只包括这个'<%= @ pinned.inspect =>',然后尝试重新加载页面并查看第二个SQL是否仍然执行。 – Victor