0

我有一个名为 的模型,我可以通过调用orCategory找到我当前类别的兄弟姐妹,但是一旦我尝试对这些请求中的任何一个进行排序,我就会得到方法错误。@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

只要我根本不对结果进行排序,我就可以让它正常工作,但我真的很想知道为什么对结果进行排序会搞砸一切。

4

1 回答 1

2

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

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

或者查看文档以获取更多语法选项。

于 2013-04-16T05:13:03.883 回答