2012-11-05 106 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類型都有一個爲它們定義的序列化程序。

相關問題