ActiveRecord Нет ключевой ассоциации - PullRequest
0 голосов
/ 27 мая 2011

У меня есть две таблицы / модели (Пользователь, Демографическая), которые имеют слабые отношения и имеют общий столбец (электронная почта). Может быть несколько записей пользователя с одним и тем же адресом электронной почты, но будет только одна демографическая запись.

Можно ли определить отношение has_one и has_many и заставить его использовать столбец электронной почты для объединения вместо идентификатора?

Спасибо, Скотт

P.S. Если это имеет значение, я использую ActiveRecord 3.x

1 Ответ

2 голосов
/ 27 мая 2011

Вы не можете использовать неуникальные данные в качестве ключа, поскольку нет ничего, чтобы принудительно указывать, к какому экземпляру адреса электронной почты относится ресурс.Вы можете использовать электронную почту как внешний ключ, но она вернет демографические данные для всех пользователей с этим адресом электронной почты.

Чтобы переопределить внешний ключ, выполните:

  belongs_to :user, :foreign_key => 'email'

Ссылка: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

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