2009-02-20 66 views
3

名通過軌道展望2.3 RC1發佈說明我看到這一點:獲得一個實例變量

# Equivalent of render :partial => 'articles/_article', :object => @article 
render @article 

所以不知何故render方法是找出所傳遞的int它被分配到與實例變量對象名稱article。它是如何做到的?

回答

9

它實際上使用對象(模型)的類型來確定部分路徑,而不是實例變量的名稱。所以,只要類型是Article,即使實例變量是@foo,這也是可行的。

有關如何從對象計算路徑的信息,請參閱ActionController :: RecordIdentifier.partial_path的代碼。

1

Dave Ray的回答是正確的 - Rails在這裏沒有對變量名做任何事情。在一般情況下,您所問的內省可能與ParseTree庫有關,但它具有可移植性問題(JRuby,Ruby 1.9等)。