我有一个名为Category
的模型,我可以通过调用@category.parent.siblings
或Category.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
只要我根本不对结果进行排序,我就可以正常工作,但我真的很想知道为什么对结果进行排序会把所有内容都搞砸。
答案 0 :(得分:2)
如果不了解模型中的内容,很难知道where
查询有什么问题。但这种情况可能是因为你没有尝试正确的方法。使用mongoid进行排序的常规方法如下:
Category.siblings_of(params[:id]).order_by(name: :asc)
或者查看docs了解更多语法选项。