Возможно, вы захотите попробовать иметь множество через ассоциацию вместо именованной области.
class User < ActiveRecord::Base
has_many :bids
has_many :auctions, :through => :bids
end
Или сделать наоборот
class Auction < ActiveRecord::Base
has_many :bids
has_many :users, :through => :bids
end
Таким образом, вы можете просто написать: @ auction.users.include? (Пользователь)
Это не очень понятно для чтения, поэтому давайте улучшим его:
class Auction < ActiveRecord::Base
has_many :bids
has_many :bidders, :through => :bids, :source => :user
end
А теперь: @ auction.bidders.include? (Пользователь)
Наконец, вы можете передать более одного параметра в лямду, так что (не лучший пример)
named_scope :for_apple_and_banana, lambda{|apple_id, banana_id| {:conditions => ["apple_id = ? AND banana_id = ?", apple_id, banana_id ]}}