Rails 按关联模型的属性排序集合?

发布于 2024-12-04 03:36:48 字数 381 浏览 1 评论 0原文

我试图找出一种基于所收集模型的关联属性来对模型集合进行排序的方法(我认为......真是拗口)。这就是我正在做的事情:

class Item < ActiveRecord::Base
  belongs_to :category
end

class Order < ActiveRecord::Base
  has_many :items, :order => :category_id
end

目前 order.items 返回按category_id 排序的项目。但我真正想要的是按字母顺序列出它们category.name。这可能吗?

谢谢, 斯图尔特

I'm trying to figure out a way to order a model's collection based on an attribute of an association of the collected model (I think... what a mouthful). Here's what I'm doing:

class Item < ActiveRecord::Base
  belongs_to :category
end

class Order < ActiveRecord::Base
  has_many :items, :order => :category_id
end

At the moment order.items returns the Items ordered by the category_id. But what I really want is to have them listed by alphabetical category.name. Is that possible?

Thanks,
Stewart

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浴红衣 2024-12-11 03:36:48

如果您使用 :include 来急切加载类别,它应该可以工作。

class Order < ActiveRecord::Base
  has_many :items, :include => :categories, :order => "categories.name"
end

It should work if you use :include to eager load the categories.

class Order < ActiveRecord::Base
  has_many :items, :include => :categories, :order => "categories.name"
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文