按名称和整数排列Ancestry兄弟姐妹

时间:2013-04-15 03:47:15

标签: ruby-on-rails mongoid ancestry

我有一个名为Category的模型,我可以通过调用@category.parent.siblingsCategory.siblings_of(params[:id])找到当前类别的兄弟姐妹,但是一旦我尝试对这些请求中的任何一个进行排序,我就会得到方法错误。

如果我打电话Category.where(:parent_id => @category.parent.id)没有显示任何内容,但我没有错误。

如果我致电Category.siblings_of(params[:id]).sort('name'),我会收到错误消息:

undefined method `to_direction' for nil:NilClass

如果我致电Category.siblings_of(params[:id]).arrange(:order => 'name'),则说:

undefined method `name' for #<Array:0x007fb00de57b70>
Extracted source (around line #21):

18:                 %i.icon-plus
19:         %li.nav-header a neighbour of:
20:         - for neighbour in @siblings
21:             %li= link_to neighbour.name, neighbour, :remote => true

只要我根本不对结果进行排序,我就可以正常工作,但我真的很想知道为什么对结果进行排序会把所有内容都搞砸。

1 个答案:

答案 0 :(得分:2)

如果不了解模型中的内容,很难知道where查询有什么问题。但这种情况可能是因为你没有尝试正确的方法。使用mongoid进行排序的常规方法如下:

Category.siblings_of(params[:id]).order_by(name: :asc)

或者查看docs了解更多语法选项。