Я не знаю, правильно ли я понял ваш вопрос, но вы сможете проверить, находится ли предложение в избранном у пользователя с:
# Example with the user n°1
Offer.in_favorites(1).include?(offer)
Другой способ моделирования ваших предложений -использовать has_many :through
ассоциацию:
class User < ActiveRecord::Base
has_many :favorites
has_many :favorite_offers, :through => :favorites, :source => :offer
end
Затем вы можете сделать:
# user is an instance of User
user.favorite_offers.include?(offer)
# same thing, only SQL. A bit less readable, but doesn't load all the user's favorites
!user.favorite_offers.where(:id => offer.id).empty?
Надеюсь, это поможет.