мои модели
class Auction
belongs_to :item
belongs_to :user, :foreign_key => :current_winner_id
has_many :auction_bids
end
class User
has_many :auction_bids
end
class AuctionBid
belongs_to :auction
belongs_to :user
end
текущее использование
Аукцион отображается на странице, пользователь вводит сумму и нажимает ставку. Код контроллера может выглядеть примерно так:
class MyController
def bid
@ab = AuctionBid.new(params[:auction_bid])
@ab.user = current_user
if @ab.save
render :json => {:response => 'YAY!'}
else
render :json => {:response => 'FAIL!'}
end
end
end
желаемая функциональность
Это отлично работает! Тем не менее, мне нужно обеспечить пару других вещей.
-
@ab.auction.bid_count
нужно увеличить на единицу. -
@ab.user.bid_count
нужно увеличить на -
@ab.auction.current_winner_id
необходимо установить на@ab.user_id
То есть значения User
и Auction
, связанные с значениями AuctionBid
, также должны обновляться, чтобы AuctionBid#save
возвращал true.