条款 - Ruby on Rails

时间:2014-01-13 03:00:22

标签: ruby-on-rails ruby rails-activerecord

我是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

2 个答案:

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