Rails, has_many с внешним ключом, как подключить принадлежит?

Моя модель User имеет следующие строки:

  has_many :social_ids 
  has_many :friend_ids,  :class_name => "SocialId"

И моя модель SocialId имеет:

belongs_to :user

Это позволяет мне делать такие вещи, как

user1.social_ids << social_id1 user2.social_ids << social_id2 user1.friend_ids << social_id2

Тем не менее, я не осознавал (ошибка с моей стороны), что теперь и social_id1, и social_id2 имеют user1 в качестве пользователя.

Это, очевидно, неправильно, но я не могу понять, как правильно подключить принадлежность в этом случае.

belongs_to :friend_user, :class_name => 'User', :foreign_key => 'friend_user_id'

не выглядит правильно... и как он узнает, чтобы войти в раздел friend_ids пользователя, а не идентификатор социальной сети?

Я просто полностью запутался?

Редактировать:

Я думаю, что я был по крайней мере частично смущен. Социальный идентификатор не должен быть BELONG_TO другом, это должны быть отношения HABTM (один социальный идентификатор может быть друзьями с несколькими пользователями, у каждого из которых есть несколько друзей social_id)

0 ответов

Другие вопросы по тегам