Neh*_*eha 1 ruby-on-rails ruby-on-rails-3.2
我有这个问题:
case_timeline = Case.select('cases.*, case_steps.*, tasks.*, task_statuses.*')
.joins(case_steps: { tasks: :task_status} )
.where('cases.id = ?', case_1.id)
.where('task_statuses.task_status_name in (?)', ['Open', 'Overdue', 'Completed'])
.order('tasks.end_date DESC')
completed_timeline =
case_timeline
.select{|task| task.task_status_name == "Completed" }
Run Code Online (Sandbox Code Playgroud)
我如何按日期订购?我试过这个:
completed_timeline =
case_timeline
.select{|task| task.task_status_name == "Completed" }
.order('end_date')
Run Code Online (Sandbox Code Playgroud)
但它给出了错误:
undefined method `order' for #<Array:0x000000051da2e0>
Run Code Online (Sandbox Code Playgroud)
在调用select之前,您需要调用对象的order方法.
completed_timeline =
case_timeline.order('end_date')
.select{|task| task.task_status_name == "Completed" }
Run Code Online (Sandbox Code Playgroud)
这是因为case_timeline返回一个知道如何响应顺序的ActiveRecord对象,其中调用select返回一个不知道如何响应顺序的Array对象.
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |