ActiveRecord, has_many: через, и Полиморфные Ассоциации

По умолчанию Вы получите базовый файл. Проверьте, чтобы видеть, что текущий каталог процесса перезаписываем, или никакой базовый файл не будет создан.

115
задан Ryan Bigg 6 November 2009 в 04:19
поделиться

2 ответа

Существует известная проблема с Rails 3.1.1, которая нарушает эту функциональность. Если у вас возникла эта проблема, попробуйте сначала выполнить обновление, она исправлена ​​в версии 3.1.2

. Вы так близко. Проблема в том, что вы неправильно используете параметр: source. : source должен указывать на полиморфное отношение own_to. Затем все, что вам нужно сделать, это указать: source_type для отношения, которое вы пытаетесь определить.

Это исправление модели виджета должно позволить вам делать именно то, что вы ищете.

class Widget < ActiveRecord::Base
  has_many :widget_groupings

  has_many :people, :through => :widget_groupings, :source => :grouper, :source_type => 'Person'
  has_many :aliens, :through => :widget_groupings, :source => :grouper, :source_type => 'Alien'
end
160
ответ дан 24 November 2019 в 02:27
поделиться

их много: сквозной и полиморфный не работают вместе. Если вы попытаетесь получить к ним доступ напрямую, это должно вызвать ошибку. Если я не ошибаюсь, вам нужно вручную написать widget.people и процедуру push.

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

-4
ответ дан 24 November 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: