Sql 有没有办法对Ruby order列进行优先级排序?
我在模型上有一个订单条款:Sql 有没有办法对Ruby order列进行优先级排序?,sql,ruby-on-rails,ruby,Sql,Ruby On Rails,Ruby,我在模型上有一个订单条款: sorted = Teacher.order('teachers.first_name asc, teachers.last_name asc') 还有几个范围其中方法在排序后调用 最后,如果存在排序参数,则在排序的上调用order Rails生成的SQL语句将有一个order by3列(first_name,last_name,最后一列来自过滤器发送的参数)。 数据集永远不会按所需列排序,除非有教师的名字和姓氏相同 如果存在排序参数,是否有方法对order列进行优
sorted = Teacher.order('teachers.first_name asc, teachers.last_name asc')
还有几个范围其中方法在排序后调用
最后,如果存在排序参数,则在排序的上调用order
Rails生成的SQL语句将有一个order by
3列(first_name
,last_name
,最后一列来自过滤器发送的参数)。
数据集永远不会按所需列排序,除非有教师的名字和姓氏相同
如果存在排序参数,是否有方法对order列进行优先级排序?如果存在参数,则可以调用关系,但随后必须重新指定所有字段,因此不太吸引人
用指定的顺序替换关系上定义的任何现有顺序
User.order('email DESC').reorder('id ASC') # generated SQL has 'ORDER BY id ASC'
据我所知,没有任何东西允许您说“我希望此顺序
值出现在先前设置的顺序
值之前”如果参数存在,您可以调用关系,但随后您必须重新指定所有字段,因此不太吸引人
用指定的顺序替换关系上定义的任何现有顺序
User.order('email DESC').reorder('id ASC') # generated SQL has 'ORDER BY id ASC'
据我所知,没有任何内容允许您说“我希望此顺序
值出现在先前设置的顺序
值之前”
最后,如果存在排序参数,则在排序的上调用order
我想它看起来是这样的:
sorted = Teacher.order('teachers.first_name asc, teachers.last_name asc')
# ...
sorted = sorted.order(sort_param) if sort_param
如果存在排序参数,是否有方法对订单列进行优先级排序
只需相应地重新排序方法调用:
sorted = Teacher.all
# ...
sorted = sorted.order(sort_param) if sort_param
sorted = sorted.order('teachers.first_name asc, teachers.last_name asc')
最后,如果存在排序参数,则在排序的上调用order
我想它看起来是这样的:
sorted = Teacher.order('teachers.first_name asc, teachers.last_name asc')
# ...
sorted = sorted.order(sort_param) if sort_param
如果存在排序参数,是否有方法对订单列进行优先级排序
只需相应地重新排序方法调用:
sorted = Teacher.all
# ...
sorted = sorted.order(sort_param) if sort_param
sorted = sorted.order('teachers.first_name asc, teachers.last_name asc')
“然后有几种[…]方法[…]你能举个例子吗?”然后有几种[…]方法[…]你能举个例子吗?