2012-06-30 80 views
0

我是新來的鐵軌,並有一個關於訪問ActiveRecord中的關係關係的問題。Rails ActiveRelation Sub關係

考慮這個僞代碼:

class Organisation 
has_many: :projects 

class Project 
has_many: :tests 

class Test 
belongs_to: project 

有效3個級別。我需要訪問特定組織的測試,儘管我只能像項目一樣深入。

@organisation = Organisation.find(params[:id], :include => [:projects]) 

真的,我需要做的是像

@organisation.projects.scripts.all 

但是從即時閱讀,那是不可能的。那麼,這是什麼解決方案?

謝謝你們

回答

1

你想是這樣的:

@organisation = Organization.includes(:projects => :tests).find(params[:id]) 
@organization.projects.collect(&:tests) 

這將急切地加載一個組織及其所有項目和測試,然後它會收集相關的所有項目的所有測試組織。

+0

這似乎是伎倆,謝謝! – Cheyne