2012-05-17 2 views
4

У меня есть две модели, например, пользователя и клуб с их атрибутами:Rails пользовательских foreign_key имя как на столе

User: 
    id 
    uid 
    email 
    etc. 

и

Club: 
    id 
    player_id 
    address 
    supporter 
    etc. 

По какой-то причине, присоединиться атрибут является clubs.player_id с users.uid NOT clubs.player_id с users.id. Возможно ли подключение этих двух моделей с ассоциацией one-to-one с использованием has_one и belongs_to? ТНХ

+0

Несколько лет спустя, но это сообщение по-прежнему актуально! Помог мне много! Благодаря! – kstratis

ответ

16

Я держал пари, что это будет работать:

class User < ActiveRecord::Base 
    has_one :club, :foreign_key => :player_id, :primary_key => :uid 
end 

class Club < ActiveRecord::Base 
    belongs_to :user, :foreign_key => :player_id, :primary_key => :uid 
end 
+0

Спасибо вам большое. – akbarbin

+0

То же самое с 'has_many'. Выработал отлично – kstratis

0

Могут клубы много пользователей и пользователей принадлежат многим клубам? Если это так, вы можете посмотреть страницу http://guides.rubyonrails.org/association_basics.html для метода ассоциации отношений has_and_belongs_to_many. Если вы используете этот метод ассоциации, вам нужно будет создать отдельную таблицу миграции, чтобы связать user_id с club_id.

+0

FYI, вы не можете использовать ': primary_key' для отношений' has_and_belongs_to_many', поэтому, если вы этого потребуете, вам нужно * использовать 'has_many: through'. –

Смежные вопросы