Rails ассоциация с той же моделью - PullRequest
0 голосов
/ 12 мая 2011

Допустим, у меня есть 2 таблицы:

Users
user_id name

Tags
tagger_id tagged_id

Это описывает ситуацию, когда вы можете

И модели, которые я пытаюсь настроить:

class User < ActiveRecord::Base
    has_many :tags, :foreign_key => "tagger_id"
end

class Tag < ActiveRecord::Base
    belongs_to :tagger, :class => "User"
    belongs_to :tagged, :class => "User"
end

Я пытаюсь настроить его так, чтобы при выполнении:

user.tags

он возвращался со списком объектов пользователя.С моими текущими настройками он возвращается только с реальной записью тега с идентификаторами вместо объектов.Как настроить его так, чтобы он возвращал список объектов User?

Я пытался использовать:

has_many :tags, :foreign_key => "tagger_id", :source => :tagged

Но это не сработало.

1 Ответ

0 голосов
/ 12 мая 2011

Вы ищете has_many: through.

class User < ActiveRecord::Base
    has_many :tags, :foreign_key => "tagger_id"
    has_many :tagged, :through => :tags
end

Тогда user.tagged должен предоставить вам список пользователей, которых вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...