我的代碼的has_many/belongs_to的關聯導致翻一番查詢
class Magazine < ActiveRecord::Base
has_many :ads
end
class Ad < ActiveRecord::Base
belongs_to :magazine
end
我有類似的東西在我的代碼如下(假設params[:magazine_name]
,params[:ad_name]
):
mag = Magazine.find_by_name(params[:magazine_name])
@ad = mag.ads.find_by_name(params[:ad_name])
如果我現在訪問@ad.magazine
,它使存儲在@ad
中的雜誌ID發現另一個數據庫查詢。爲什麼ActiveRecord沒有足夠的智能來實現它已經從數據庫獲得它,它不應該再次得到它? (我該如何讓它更聰明?)
謝謝。據燈塔(和我的測試),這是目前打破,但它有望在不久的將來修復。 – 2011-04-07 21:40:54
(鏈接:https://rails.lighthouseapp.com/projects/8994/tickets/4914-activerecord-inverse_of-doesnt-have-any-effect) – 2011-04-29 16:39:28
看起來它會在3.1中修復:http:// edgerails .info/articles/what-s-new-in-edge-rails/2011/04/21/activerecord-identity-map/index.html – 2011-05-08 00:28:14