我想创建一个基于Ruby on Rails的Redmine插件。我有以下查询获取发票过程中所有问题的time_entries总和。如何在Ruby on Rails中使用关联使用连接
SELECT SUM(t.hours)
FROM time_entries t
JOIN invoices i ON t.project_id = i.project_id
WHERE t.project_id = <current project [email protected]>
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])
控制器
我知道控制器实例变量是完全搞砸了。
某处我犯了错误。有人可以帮我解决这个问题。
您运行的是什么版本的轨道? – miked 2012-02-21 02:22:13
我正在使用Rails 2.3.14和Ruby 1.8.7 – user434509 2012-02-21 15:51:51