是正确的:“Employee.where(年龄:<”60“)。订单(:名字)”?

时间:2015-07-18 20:55:24

标签: ruby-on-rails ruby

我正在尝试使用'Employee.where(年龄:<“60”)。order(:first name)'。它不起作用。有什么不对吗?

3 个答案:

答案 0 :(得分:2)

假设你的:age字段是一个整数,你需要按顺序排序:first_name它是这样的:

Employee.where('age < ?', 60).order(:first_name)

答案 1 :(得分:1)

请查看into documentation。您将找到每个ActiveRecord查询方法的说明,包括whereorder

答案 2 :(得分:0)

我会这样做:

#Controller
@employees = Employee.sort_by_name('first_name ASC').young_employees

#model
scope :sort_by_name, ->(criteria) { order: criteria }
scope :young_employes, -> { where("age < ?", 60)}

为了实现这一目标,请检查您的年龄<#39;列是整数类型,并且您的名字列也称为&#39; first_name&#39;