Rails Ancestry Gem:按多态属性排列

时间:2018-06-15 03:21:05

标签: ruby-on-rails ancestry

我正在使用Rails Ancestry gem,我已经用它来按Ancestry排序了:

Item.sort_by_ancestry(item.subtree)

但我还需要按每个项目的名称排序,这是多态关联的自定义属性。所以我在模型上这样做:

Class Item < ApplicationRecord
belongs_to :itemable, :polymorphic => true, dependent: :destroy
accepts_nested_attributes_for :itemable
attr_accessor :key
def key
    self.itemable.key
end
end

但是,Ancestry附带的.arrange方法似乎只是将符号作为一个参数。例如:

Item.sort_by_ancestry(item.subtree.arrange(order: :id))

除此之外,我需要这样的事情:

Item.sort_by_ancestry(item.subtree.arrange(order :: key))

但是这不起作用,因为它不是数据库中的属性,它是模型类的属性。按ID排序工作正常我猜...至少它将按照用户创建项目的顺序,但我真的希望能够按字母顺序按键排序。

那么我如何通过键来命令它,这是在模型类上使用attr_accessor定义的自定义属性?

0 个答案:

没有答案