2011-02-18 46 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種型號,你爲什麼不只是在你的待辦事項模型交貨期場?

如果您的待辦事項模型中有截止日期字段,則可以定義一個範圍來對待辦事項進行分類。