В то время как ответ Виртуалов будет работать, вы должны прочитать об отношениях ActiveRecordВаш сценарий может быть настроен так: (только грубый набросок, опуская детали)
class User
has_many :likes
has_many :articles, :through => :likes
end
class Article
has_many :likes
has_many :users, :through => :likes
end
class Likes
belongs_to :user
belongs_to :article
end
Это даст вам большую часть необходимой вам функциональности (и многое другое)
Обновление
Я добавил has_many, который имеет больше смысла и должен работать лучше для вас.Мне не очень нравятся названия, потому что теперь вы можете получить доступ к чему-то вроде @ user.articles, в котором будут использоваться определенные ассоциации.Обычно @ user.articles означает, что статьи напрямую связаны с пользователем (имеют собственное поле user_id).Вы можете использовать что-то вроде
has_many :liked_articles, :through => :likes
, а затем использовать
@user.liked_articles
Но для этого потребуется еще больше информации, поскольку вам придется явно указывать Rails имена полей id (такэто не будет работать точно так же, как я написал код, просто намек на то, что есть больше опций)
Есть еще больше опций с использованием областей или нового синтаксиса запроса Rails 3.x, например @ user.where (...), который работает проще, если вам нужно объединить несколько условий.
В общем, я бы рекомендовал установить как можно больше информации с такими ассоциациями, как has_many и own_to, поскольку таким образом Rails дает вам многофункциональности бесплатно, что иначе не получишь.Но может быть много причин сделать это так или иначе, так как часто в программировании нет 100% ответа, который подходит для любой ситуации.