Модели отношений Rails - PullRequest
       1

Модели отношений Rails

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

У меня есть модель, которая содержит социальные сети. то есть (твиттер, фейсбук, ...). Затем мне нужно, чтобы пользовательская модель и модель компании имели социальные сети has_many. Нужно ли мне использовать отношение has_many: through, т. Е.

  • Пользователь может иметь много социальных сетей
  • Компания может иметь много социальных сетей
  • And Socials принадлежит пользователям и компаниям

Будет ли что-то подобное быть правильным?

class Social < ActiveRecord::Base
  belongs_to :user
  belongs_to :company
end

class User < ActiveRecord::Base
  has_many :social_networks
  has_many :socials, : through => :social_networks
end

class Company < ActiveRecord::Base
  has_many :social_networks
  has_many :socials, : through => :social_networks
end

Нужно ли мне иметь модельные социальные сети?

Тогда у меня будет 2 таблицы соединения:

socials_users & companies_socials

Это был бы правильный способ сделать это?

Не думаю, что чем проще будет has_and_belongs_to_many?

Надеюсь, кто-нибудь сможет пролить свет на правильный способ сделать это!

1 Ответ

0 голосов
/ 15 декабря 2011

После тестирования проблем с использованием HABTM нет, т. Е.

class Social < ActiveRecord::Base
  has_and_belongs_to_many :users
  has_and_belongs_to_many :companies
end

class User < ActiveRecord::Base
  has_and_belongs_to_many :socials
end

class Company < ActiveRecord::Base
  has_and_belongs_to_many :socials
end

Затем создайте 2 соединительные таблицы

socials_users & companies_socials

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