Лучший способ приблизиться к модели, принадлежащей к одной из многих возможных моделей - PullRequest
0 голосов
/ 09 июня 2010

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

Ответы [ 2 ]

2 голосов
/ 09 июня 2010

Это именно то, для чего были разработаны полиморфные ассоциации .

Проверка http://guides.rails.info/association_basics.html#polymorphic-associations

В основном вы бы сделали что-то вроде этого:

Class User < ActiveRecord::Base
  has_many :comments
end

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

class Video < ActiveRecord::Base
  has_many :comments, :as => :commentable
end
class Article < ActiveRecord::Base
  has_many :comments, :as => :commentable
end
# ... so on

Проверьте ссылку выше, чтобы узнать, как спроектировать миграцию.Вы хотите столбцы commentable_id и commentable_type вместо столбцов imageable_ *, которые они используют в примере.

0 голосов
/ 09 июня 2010

Немного оглянувшись, я обнаружил, что этот скринкаст очень полезен, если кто-то еще тоже ищет.

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