Relation / Sort在rails控制器中不起作用?

时间:2010-05-19 03:10:22

标签: ruby-on-rails

我的rails应用程序中有以下关系:

流派   - 有很多作者

作者 - 属于流派,有很多书

书籍 - 属于作者,属于用户

(用户可以将书籍添加到数据库中)

在我的控制器中我有:

@books=current_user.books(:include => [:author => :genre], :order => 'created_at DESC')

虽然我可以在我的视图中使用@books变量 - 但没有正确完成任务(即它没有向我显示该用户添加的书籍,而且不是由created_at降序)...

任何想法?

-

另外我正在为用户auth使用许可,所以在控制器中没有@的current_user似乎工作正常

实际上,我认为这种关系是有效的,只有这种关系可能不起作用......

1 个答案:

答案 0 :(得分:1)

你想要排序哪个created_at?当您参与联接时,通常更安全:

@books = current_user.books(..., :order => 'books.created_at DESC')

你可以做的另一件事是在客户端中对它进行排序,如果你没有分页,可能比让RDBMS更快地进行排序:

@books = current_user.books(...).sort_by(&:created_at).reverse

如果您对这些结果进行分页,则需要对查询进行排序,无法绕过它。