對不起,我想通了。我曾嘗試將該方法添加到ActiveRecord Bid類中,但我忘記將其設置爲類方法,因此它沒有看到該方法。
class Bid < ActiveRecord::Base
...
def self.highest
last(:order => :amount)
end
不是100%,但這將處理該關聯。現在就爲此寫一些測試。
編輯:
簡單的測試似乎表明,這似乎奇蹟般地處理關聯了。
test "highest bid finder associates with auction" do
auction1 = install_fixture :auction, :reserve => 10
auction2 = install_fixture :auction, :reserve => 10
install_fixture :bid, :auction => auction1, :amount => 20, :status => Bid::ACCEPTED
install_fixture :bid, :auction => auction1, :amount => 30, :status => Bid::ACCEPTED
install_fixture :bid, :auction => auction2, :amount => 50, :status => Bid::ACCEPTED
assert_equal 30, auction1.bids.highest.amount, "Highest bid should be $30"
end
如果測試未正確關聯,則會找到$ 50出價。巫術;)
這會給你最高的出價,無論拍賣。如果您將方法添加到拍賣模型,您可以獲得每次拍賣的最高出價。 – Mischa 2010-10-18 13:38:00
我可以確認這似乎與通過auction.bids調用時拍賣正確關聯。 – d11wtq 2010-10-18 13:42:53
根據我的測試,你錯了: – d11wtq 2010-10-18 13:43:32