2012-11-05 76 views
1

我们有多种类型的“小部件”,这些小部件可用于组中,并且在导轨内我们有一个多态关系来返回所有小部件,而不管类型如何。我们可以使用Ember数据使用多态关系吗?

例如,我们可以调用@ 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 

如果我添加多态性=>真到串行。例如:

class GroupSerializer < ActiveModel::Serializer 
    attributes :id, 
      :parent_id, 
      :title, 
      :group_type 

    has_many :widgets, :polymorphic => true 
end 

我似乎得到一个递归循环,这与SystemStackError(堆栈级别太深)结束。

我在这里错过了一个诀窍,还是这只是一件无法完成的事情?

感谢, 丹

回答

0

你试过宣布它没有多态的声明?

has_many :widgets 

还要确保每个widget类型都有一个为它们定义的序列化程序。

相关问题