1

Я ищу для реализации функции комментариев и сообщений на сайте в своих приложениях. Это позволит людям прокомментировать следующие модулиКомментирование «пути рельсов» - относительно отношений между таблицами и путей рельсов или решения проблем

Newsletters 
Reports 
Tasks 
and user to user (messaging) 

Мой план был бы сделать внешний ключ, называемый «ENTITY_ID», который не связан ни с одной таблицей. Вместо этого он связан с commentEntity_id, который представляет собой список всех таблиц, которые можно прокомментировать.

Пример:

Так комментарий будет иметь CommentEntity, который указывает на Reports и также ENTITY_ID, который в данном случае является идентификатор таблицы отчетов.

Путь я хотел бы построить это сделать следующие таблицы

Comment #along with user_id and a comment body:string, this will also have a commentEntity_id and a entity_id 

CommentInvolvement # simply everyone involved (either by commenting on the entity, or in the case of user to user, **being** the entity) 

CommentEntity # This is the join between the comment and the place 
it's put. 

Это было бы мое решение в PHP проекта, хотя я понимаю, Rails требует иной способ мышления, поэтому я хотел бы получить мысли сообщества об этой проблеме, и как это лучший способ справиться с этим?

Благодаря

ответ

3

Да, Rails поддерживает этот подход через Polymorphic associations

comment.rb

belongs_to :commentable, polymorphic: true 

другие модели

has_many :comments, as: :commentable 

Примечание: Вы должны добавить две колонки в комментариях таблица commentable_id (целое число) и commentable_type (String)

+0

ааа конечно. Я помню, как читал об этом! Благодарю. –

0

Вы должны также проверить большой RailsCast относительно полиморфных ассоциаций д