我是Ruby on Rails的新手,并且在模型的简单位置上遇到了麻烦。
当我尝试进行测试#1时,结果出现故障。无论如何,新物品都会被推到谷底。
def index
@user = User.where(:status => false).order(last_name: :desc).all
end
如果我将它输入到rails控制台中它也不起作用,但是如果我删除了它在rails控制台中完美地工作但在UsersController中不起作用。
使用订单执行where子句的正确方法是什么?谢谢你的帮助!
更新
我已将代码更新为以下内容,但结果仍然无序:
def index
@user = User.where(status: false).order('last_name DESC')
end
答案 0 :(得分:1)
您应该使用order('last_name DESC')
代替order(last_name: :desc)
。
order(last_name: :desc)
将产生类似的sql(这就是为什么你的订单不起作用):
ORDER BY '---\\n:last_name: :desc\\n'
order('last_name DESC')
将生成sql权限:
ORDER BY last_name DESC
答案 1 :(得分:1)
Rails 4
def index
@user = User.where(status: false).order('last_name DESC')
end