2011-02-18 65 views
1

我有两个模型:Todo和Duedate。一个Duedate has_many todos,同样Todo属于一个Duedate。 Duedates表包含一个id和一个'date'数据类型条目。每个Todo对象都有一个duedate_id列,它对应于一个Duedate id。使用sort_by ruby​​ on rails从另一个表的数据排序

藤有一个像优先权并完成了它的其他价值,这是我排序:

@todos = @todos.sort_by(&:priority) 

我想按日期排序@todos,但我不知道如何告诉sort_by使用的日期与duedate桌子中的duedate_id相关联。我不能只是做

@todos = @todos.sort_by(&:duedate_id) 

,因为这将只是有点@todos的日期,因为它是进入交货期表,而不是由项目对应的日期。谁能帮忙?

感谢, 罗斯

回答

1

您使用的是symbol_to_proc糖的方法。您可以使用普通老式块参数sort_by:

@todos = @todos.sort_by{ |todo| todo.duedate.date } 
0

为什么你有2种型号,你为什么不只是在你的待办事项模型交货期场?

如果您的待办事项模型中有截止日期字段,则可以定义一个范围来对待办事项进行分类。