ruby-on-rails - ruby rails 3 : sort array based on data from ActiveRecord

标签 ruby-on-rails ruby ruby-on-rails-3

我有一个数组,它是来自一个 ActiveRecord 表的 ID。 所以我想根据与该 ID 关联的姓氏对该数组进行排序...我该怎么做? 澄清: array @students=[],里面是 ID,我想按 Student.find(ID).last 排序 谢谢。 多里扬

最佳答案

在没有完全理解问题的情况下,如果给你一个 id 列表,你可以在查询时按 last_name 排序:

Student.where("id IN (?)", @students).order(:last_name)

当然,这假设@students 是一个 id 数组,没有别的。

回应您的评论,我不确定您为什么需要这样做,但是如果您的@student 数组只是一个不了解 Student 模型及其属性的 id 列表,并且您仍然想订购那个数组,你可以这样做:

@students = Student.where("id IN (?)", @students).order(:last_name).collect(&:id)

这将返回一个按姓氏排序的 ID 数组。但同样,我真的不知道你在幕后发生了什么,我也不确定你在要求什么。

关于ruby-on-rails - ruby rails 3 : sort array based on data from ActiveRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8228114/

相关文章:

ruby-on-rails - 设计修改密码后自动退出

ruby - 将所有正则表达式匹配作为参数发送

ruby-on-rails - 如何从目录中获取文件名和扩展名

ruby-on-rails - 每小时清洁文件夹

ruby-on-rails - 更改 Rails 中的默认 View 路径?

javascript - 删除字段并添加字段链接不适用于 rails 3.0.9 中的嵌套表单

ruby-on-rails - Messy 从 Rails 3 controller 返回查看

php - 如何在 Rails 中使用带有 hash_hmac 的 sha256 加密数据,就像在这个 php 函数中一样

ruby - 有点代码看不懂 RUBY = [*?a..?z]

ruby-on-rails - 如何同时在 localhost 和 web 上运行 Ruby 项目?