2011-03-09 92 views
7
Project 
has_many :tasks 

Task 
has_many :invoices, :through => :line_items 
has_many :line_items 

LineItems 
belongs_to :invoice 
belongs_to :task 

Invoice 
has_many :tasks, :through=> :line_item 
has_many :line_items 

我想从项目的has_many关联:发票:通过=>:任务:的has_many:通过协会两层深

当我尝试了,我得到:

源反射宏无效:has_many:through for has_many:invoices,:through =>:tasks。使用:source来指定源反射。

我有点茫然,如果这是可能的,如果是这样,如何使用:源正确

回答

5

瑞安是正确的,这是从Rails的3.1支持。从发行说明中提取:

与a:through选项的关联现在可以使用任何关联作为直通或源关联,包括具有:直通选项和has_and_belongs_to_many关联的其他关联。

Src:http://guides.rubyonrails.org/3_1_release_notes.html