I am having great difficulty reading the API for named scopes. Each ‘bid’ has a user_id and an auction_id. I need a scope to return the auctions the user has bid on.
Auction
class Auction < ActiveRecord::Base has_many :bids named_scope :current, lambda { {:conditions => ['scheduled_start < ?', 0.minutes.ago], :order => 'scheduled_start asc'} } named_scope :scheduled, lambda { {:conditions => ['scheduled_start > ?', 0.minutes.ago], :order => 'scheduled_start asc'} } end
Bid
class Bid < ActiveRecord::Base belongs_to :user belongs_to :auction validates_numericality_of :point, :on => :create # # how do I write a named scope to check if a user has bid on an auction? end
you might wanna try a has many through association instead of a named scope.
Or do it the other way round
That way, you can simply write: @auction.users.include?(user)
That is not very clear to read, so lets improve it:
And now: @auction.bidders.include?(user)
Lastly, you can pass more than one param to a lamda, so (not the best example)