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