2009-02-20 74 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等)。