我的rails应用程序中有以下关系:
流派 - 有很多作者
作者 - 属于流派,有很多书
书籍 - 属于作者,属于用户
(用户可以将书籍添加到数据库中)
在我的控制器中我有:
@books=current_user.books(:include => [:author => :genre], :order => 'created_at DESC')
虽然我可以在我的视图中使用@books变量 - 但没有正确完成任务(即它没有向我显示该用户添加的书籍,而且不是由created_at降序)...
任何想法?
-
实际上,我认为这种关系是有效的,只有这种关系可能不起作用......
答案 0 :(得分:1)
你想要排序哪个created_at?当您参与联接时,通常更安全:
@books = current_user.books(..., :order => 'books.created_at DESC')
你可以做的另一件事是在客户端中对它进行排序,如果你没有分页,可能比让RDBMS更快地进行排序:
@books = current_user.books(...).sort_by(&:created_at).reverse
如果您对这些结果进行分页,则需要对查询进行排序,无法绕过它。