Ruby on Rails 上に構築された Redmine プラグインを作成しようとしています。請求中にすべての問題の time_entries の合計を取得する次のクエリがあります。
SELECT SUM( t.hours )
FROM time_entries t
JOIN invoices i ON t.project_id = i.project_id
WHERE t.project_id = <current project id----@project.id>
AND i.id = <billing invoice id>
AND t.updated_on > 'i.created_at'
AND t.updated_on < 'i.due_date'
このクエリ データを請求書テーブルの time_spent という列に保存する方法、または請求書 ID による上記のクエリとともにすべての請求書を一覧表示する請求書ビューで結果を取得する方法
私が作成したモデルの関連付けは次のようになります
class Invoice < ActiveRecord::Base
set_table_name "invoices"
set_primary_key "invoice_id"
belongs_to :project
belongs_to :author, :class_name => "User", :foreign_key => "author_id"
has_many :time_entries, :class_name => "TimeEntry", :foreign_key => "project_id"
コントローラーでは、モデルを次のように呼び出しています
@invoices = Invoice.find(:all, :joins=>" INNER JOIN time_entries ON time_entries.project_id = invoices.project_id",:conditions => ["invoices.project_id = ? AND updated_on > ? AND updated_on < ?", @project.id, invoices.created_at, invoices.due_date])
コントローラーのインスタンス変数が完全に台無しになっていることはわかっています。
どこかで私は間違いをしています。誰かがこれを手伝ってくれませんか。