我正在学习 Ember.js,使用 Rails 后端。我正在寻找建立一个树结构,用于将组模型与其自身(子组)相关联。由于它相当成熟,我想在 Ember 端连接Ancestry 宝石以供消费。
Ancestry 在我的 Group 模型中添加了一个名为“ancestry”的字符串列,并返回一个父 ID 字符串。在这种情况下,如何设置 Ember 模型?
我正在学习 Ember.js,使用 Rails 后端。我正在寻找建立一个树结构,用于将组模型与其自身(子组)相关联。由于它相当成熟,我想在 Ember 端连接Ancestry 宝石以供消费。
Ancestry 在我的 Group 模型中添加了一个名为“ancestry”的字符串列,并返回一个父 ID 字符串。在这种情况下,如何设置 Ember 模型?
我通过对组序列化程序和 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'