2011-11-02 156 views
0

我找我的所有联系人,并通过使用这种(工作正常),包括相关的注意事项资源:排序包含按日期

@contact = Contact.find(params[:id], :include => :notes) 

不过,我想通过created_at日期,如何将包含笔记整理我可以做到这一点吗?

感谢, 约翰

+2

你尝试只需添加':为了=>:created_at'到'的has_many:在接触模型notes'线,或将这项突破别的东西吗? – Frost

+0

谢谢,我使用了“has_many:notes,:order =>'created_at DESC'”并且工作正常。 – John

回答

0

无论是:order条款添加到您的has_many声明马丁建议,或将其添加到查询,在这里你可能必须指定表名,以避免歧义。在Rails 3.x的语法:

Contact.includes(:notes).find(params[:id]).order("notes.created_at DESC") 
+0

我不相信这会工作...'Contact.find(id)'将是一个联系对象,而不是一个关系,所以它没有包含方法,或者如果它,它不会做你想要什么。使用'Contact.where(:id => params(:id)'而不是Contact.find不会失败,但我不知道你可以用这种方法对包含的对象进行排序。 – MrTheWalrus

+0

你是对的,修复链接订单 – Thilo

+0

我相信只要.find出现在.order之前,它就会失败,因为Contact没有'order'方法比'include'更多。 – MrTheWalrus