use*_*119 1 ruby ruby-on-rails ruby-on-rails-3
我有一个数组,它是来自一个ActiveRecord表的ID.所以我想根据与该ID相关联的姓氏对该数组进行排序......我该怎么做?澄清:array @ students = [],里面是ID,我想按Student.find(ID)排序.last谢谢.Dorijan
如果你没有完全理解这个问题,如果给你一个id列表,你可以在执行查询时按last_name排序:
Student.where("id IN (?)", @students).order(:last_name)
Run Code Online (Sandbox Code Playgroud)
当然,这假设@students是一个id数组,没有别的.
回应你的评论,我不确定你为什么需要这样做,但是如果你的@student数组只是一个不知道Student模型及其属性的id列表,你仍然想订购那个数组,你可以这样做:
@students = Student.where("id IN (?)", @students).order(:last_name).collect(&:id)
Run Code Online (Sandbox Code Playgroud)
这将返回按姓氏排序的id数组.但是,我真的不知道你在幕后发生了什么,我不确定你要求的是什么.