0

在我的 Rails 数据库方案中,有以下结构:

任务有很多工作工作属于一类

我想要实现的是加载所有任务以及按类别排序的所有相关作业。所以结果应该是这样的:

任务 1 作业 1 -> 类别 1 作业 3 -> 类别 2 作业 2 -> 类别 3

任务 3 工作 5 -> 类别 1 工作 9 -> 类别 2 工作 4 -> 类别 3

注意:类别的排序不是它们的ID,它是一个列。

目前唯一可行的解​​决方案是使用 Ruby 而不是 SQL 来排序作业,这非常糟糕。我只是偶然发现了 has_many 关联中的 :finder_sql 选项,但我不确定这是否可行。

4

1 回答 1

3

这将生成正确的 sql,但我不确定 ActiveRecord 是否会保留关联中的顺序:

Task.find(:all, :include => {:job => :category }, :order =>'tasks.id, categories.column')

于 2011-03-01T09:10:12.120 回答