Как использовать наследование с моделями ActiveRecord в рельсах? - PullRequest
0 голосов
/ 10 декабря 2011

В настоящее время у меня есть User (has_many: address_book_users) и AddressBookuser (столбцы: user_id, user_id_inserted)

В настоящее время, когда я вызываю user.address_book_users, я получаю массив из целых чисел, например [3, 4, 5], которые соответствуют пользователям из моей адресной книги.

При переборе этого массива я должен сделать:

for uid in user.address_book_users 
  user = User.find(uid)

чтобы получить доступ к каждому пользователю.

Что может быть лучше для этого, или я должен каким-то образом переделать мои отношения так, чтобы Rails знал, что столбец user_id_inserted относится к идентификатору пользователя?

1 Ответ

1 голос
/ 11 декабря 2011

Сначала вы должны назвать user_id_inserted модель *1002*, например, контакт.

class AddressBookUser < ActiveRecord::Base
  belongs_to :contact, :foreign_key=>'user_id_inserted', :class_name=>'User'
end

Затем определите отношение has_many: through.

class User < ActiveRecord::Base
  has_many :contacts, :through=> :address_book_users
end

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

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