浏览导轨2.3 RC1发行说明我看到了:
# Equivalent of render :partial => 'articles/_article', :object => @article
render @article
所以render
方法以某种方式找出传递给它的对象,它被分配给名为article
的实例变量。它是如何做到的?
答案 0 :(得分:9)
它实际上使用对象的类型(模型)确定部分路径,而不是实例变量的名称。因此,只要类型是Article,即使实例变量是@foo,也可以使用。
请参阅ActionController :: RecordIdentifier.partial_path的代码,了解如何从对象计算路径。
答案 1 :(得分:1)
Dave Ray的回答是正确的--Rails在这里没有对变量名做任何事情。在一般情况下,您可以使用ParseTree库进行内省检查,但这有可移植性问题(JRuby,Ruby 1.9等)。