Ruby on rails order_by 两个属性
Ruby on rails order_by two attributes
我有一个 table 并且在这个 table 中我需要 finished 属性,如果它的 null 是第一个但同时我希望将截止日期排序为 asc
def all_cases
@cases=Case.order("finished ASC NULLS FIRST").order(due_date: :asc).paginate(page: params[:page], per_page: 20)
if params[:search]
@search_term = params[:search]
@cases = Case.order("finished ASC NULLS FIRST").order(due_date: :asc).casesearch_by(@search_term).paginate(page: params[:page], per_page: 20)
else
@cases = Case.order("finished ASC NULLS FIRST").order(due_date: :asc).order(sort_columnn + " " + sort_direction).paginate(page: params[:page], per_page: 20)
end
end
此代码首先添加了已完成的空值,但未对截止日期进行排序
提前致谢
看你想要什么
Case.order("finished IS NOT NULL").order(due_date: :asc)
这行代码将首先按 due_date 排序,然后按完成属性排序,
所以在你得到的记录前面将是完成为空的记录。
Case.order(due_date: :asc).order("finished IS NOT NULL")
这行代码将首先按 finished 属性排序,然后按 due_date、
排序
所以在你得到的记录前面会记录哪个到期日更小。
我有一个 table 并且在这个 table 中我需要 finished 属性,如果它的 null 是第一个但同时我希望将截止日期排序为 asc
def all_cases
@cases=Case.order("finished ASC NULLS FIRST").order(due_date: :asc).paginate(page: params[:page], per_page: 20)
if params[:search]
@search_term = params[:search]
@cases = Case.order("finished ASC NULLS FIRST").order(due_date: :asc).casesearch_by(@search_term).paginate(page: params[:page], per_page: 20)
else
@cases = Case.order("finished ASC NULLS FIRST").order(due_date: :asc).order(sort_columnn + " " + sort_direction).paginate(page: params[:page], per_page: 20)
end
end
此代码首先添加了已完成的空值,但未对截止日期进行排序
提前致谢
看你想要什么
Case.order("finished IS NOT NULL").order(due_date: :asc)
这行代码将首先按 due_date 排序,然后按完成属性排序,
所以在你得到的记录前面将是完成为空的记录。
Case.order(due_date: :asc).order("finished IS NOT NULL")
这行代码将首先按 finished 属性排序,然后按 due_date、
排序
所以在你得到的记录前面会记录哪个到期日更小。