グループで使用できる複数のタイプの「ウィジェット」があり、レール内では、タイプに関係なく、すべてのウィジェットを返すポリモーフィックな関係があります。
たとえば、@ group.widgetsを呼び出して、使用されているものに関係なく、さまざまなタイプのウィジェットをすべて返すことができます。
class Group < ActiveRecord::Base
has_many :group_widgets
def widgets
group_widgets.map { |m| m.widget }
end
end
class GroupWidget < ActiveRecord::Base
belongs_to :group
belongs_to :widget, polymorphic: true, dependent: :destroy
end
polymorphic=>trueをシリアライザーに追加した場合。例えば:
class GroupSerializer < ActiveModel::Serializer
attributes :id,
:parent_id,
:title,
:group_type
has_many :widgets, :polymorphic => true
end
SystemStackError(スタックレベルが深すぎる)で終わる再帰ループが発生するようです。
私はここでトリックを逃していますか、それともこれはまだできないことですか?
ありがとう、ダン