Имеет много полиморфных ресурсов (с ActiveRecord) - PullRequest
0 голосов
/ 17 декабря 2011

Допустим, мы используем ActiveRecord, и есть пользователь (модель User), имеющий много комментариев (модель Comment) и много статей (модель Article). Мы можем написать это:

class User < ActiveRecord::Base
  has_many :comments
  has_many :articles
end

class Article < ActiveRecord::Base
  belongs_to :user
end

class Comment < ActiveRecord::Base
  belongs_to :user
end

... так что я могу сделать user.comments и user.articles:

* * 1010

Рассматривая Article и Comment как элемент, возможно ли это сделать (с 1 запросом)?

user.items # => [#<Comment:0x12bfcd010>, #<Article:0x10aacd333>, #<Comment:0x3928c1101>]

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

Я думаю, это было бы возможно. Спасибо.

1 Ответ

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

Об этом уже спрашивали, лучше всего поискать в Google обратные полиморфные ассоциации. Тем не менее, вот вопрос, задающий то же самое.

Обратные полиморфные ассоциации

И тогда ответ связывается с этой сущностью, которая иллюстрирует способ сделать это довольно хорошо.

https://gist.github.com/1242485

...