我想找到拍卖的最高出价。在拍卖控制器中,我执行以下操作:首先,我想通过ID检索出价模型的所有出价,然后我想按结果降序排序,然后选择第一个(=应该是最高出价):
@highest_bid = Bid.find_by_auction_id(params[:id]).order("amount DESC").first
引发此错误:
NoMethodError in AuctionsController#show undefined method `order' for #<Bid:0x98e52e8>
提取的来源(第11行):
@auction = Auction.find(params[:id])
@seller = User.find(@auction.user_id)
@highest_bid = Bid.find_by_auction_id(params[:id]).order("amount DESC").first
答案 0 :(得分:1)
您只有ActiveRecord::Relation课程有order
方法,而find_*
操作会返回ActiveRecord::Base(Bid
,在您的情况下)。
您应该像这样重写您的查询:
@highest_bid = Bid.where(auction_id: params[:id]).order("amount DESC").first
答案 1 :(得分:1)
find_by_auction_id
会返回单个Bid
对象,您无法在其上调用order
。你应该这样做:
@higheset_bid = @auction.bids.order('amount DESC').first
如果您没有此关联,则应在has_many :bids
模型中创建Auction
关联。