0

Rails 3.2.8 を使用して Web アプリケーションを構築しています。このアプリでは、3 つのテーブルを取得しました。プロジェクト、タスク、およびサブタスク。

プロジェクト

id, name

タスク

id, name, project_id

サブタスク

id, name, desc, task_id, value

プロジェクトに属するすべてのサブタスクを取得し、値を合計して、created_at でグループ化したいと考えています。

これは私が試したものですが、機能しません (AR 関係のみが返されます)。

@tasks = @project.tasks.joins(:subtasks).select('sum(subtasks.value)').group('subtasks.created_at')

私は何を間違っていますか?

すべての助けに感謝します!

4

1 に答える 1

1

思ったより近くにいると思います。

指定したチェーン内の各メソッドの結果はActiveRecord::Relation. 必要なのは、またはその他のメソッドを呼び出しalleach、クエリを強制的に実行することだけです。

でグループ化するつもりだったと思いますtasks.created_atか?

Task最後に、これを少し単純化するために、モデルにクラス メソッドを作成することをお勧めします。

それが役立つことを願っています。

于 2013-02-03T19:10:25.243 に答える