Rails: реализация многократно используемой модели комментариев - PullRequest
1 голос
/ 28 февраля 2011

У меня есть модель комментариев, а также модель видео и фото. Теперь я хочу, чтобы мои модели Видео и Фото имели have_many комментариев, но это означает, что моя модель комментариев должна иметь belongs to :video и belongs_to :model (а также внешние ключи для каждой модели в базе данных). Теперь скажите, что я создаю модель Post в том же приложении и хочу, чтобы в ней было много комментариев, что означало бы, что мне нужно будет добавить belongs_to :post в мой класс Comment. В рельсах есть лучший способ реализовать модель Comment, когда есть много других моделей, которые будут связаны с ней, или это просто так, как это делается? Любой совет будет высоко ценится.

1 Ответ

2 голосов
/ 28 февраля 2011

Вы ищете полиморфные ассоциации .

class Comment < ActiveRecord::Base
  belongs_to :commentable, :polymorphic => true
end

class Photo < ActiveRecord::Base
  has_many :comments, :as => :commentable
end

class Video < ActiveRecord::Base
  has_many :comments, :as => :commentable
end

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

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