亲爱的编程天使,
我在项目页面上订购任务。任务需要具有date_from而不是date_to。现在我按date_to(按上级指示)命令任务,这些任务只在日期列表的末尾放置一个date_from。
目标:
如果一个任务没有date_to,我希望它由date_from放入列表中,同时仍按date_to排序其余部分。
在控制器中显示方法:
@project_tasks = @project.project_tasks.where.not(project_task_type_id: nil).order('project_tasks.date_to')
非常感谢任何和所有帮助,谢谢!
答案 0 :(得分:2)
大多数SQL方言定义COALESCE
,它返回第一个非NULL
参数。要使用COALESCE
订购,您需要SELECT
一个别名值,然后按顺序排序。
因此,要@project_tasks
date_to
订购nil
,否则date_from
和@project_tasks = @project.project_tasks.select("project_tasks.*, COALESCE(project_tasks.date_to, project_tasks.date_from) AS date_to_order")
.where.not(project_task_type_id: nil).order('date_to_order ASC')
var app = angular.module('myApp', []);//'app' variable declared but later
//referenced as 'myApp'
app.controller('myCtrl', function($scope){