2

我正在学习 Ember.js,使用 Rails 后端。我正在寻找建立一个树结构,用于将组模型与其自身(子组)相关联。由于它相当成熟,我想在 Ember 端连接Ancestry 宝石以供消费。

Ancestry 在我的 Group 模型中添加了一个名为“ancestry”的字符串列,并返回一个父 ID 字符串。在这种情况下,如何设置 Ember 模型?

4

1 回答 1

2

我通过对组序列化程序和 Ember 模型进行一些修补来解决这个问题。

# serializers/group_serializer.rb
class GroupSerializer < ActiveModel::Serializer
  attributes :id, :name, :parents, :subgroups

  def parents
    object.ancestor_ids unless object.is_root?
  end

  def subgroups
    object.descendant_ids if object.has_children?
  end
end

# app/javascripts/models/group.js.coffee
App.Group = DS.Model.extend
  name: DS.attr 'string'
  parents: DS.hasMany 'group'
  subgroups: DS.hasMany 'group'
于 2013-09-14T22:40:36.287 回答