Rails有条件地按日期命令任务

时间:2015-08-13 06:18:43

标签: ruby-on-rails conditional-statements

亲爱的编程天使,

我在项目页面上订购任务。任务需要具有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')

非常感谢任何和所有帮助,谢谢!

1 个答案:

答案 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){