获取实例变量的名称

时间:2009-02-20 17:26:27

标签: ruby-on-rails ruby

浏览导轨2.3 RC1发行说明我看到了:

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

所以render方法以某种方式找出传递给它的对象,它被分配给名为article的实例变量。它是如何做到的?

2 个答案:

答案 0 :(得分:9)

它实际上使用对象的类型(模型)确定部分路径,而不是实例变量的名称。因此,只要类型是Article,即使实例变量是@foo,也可以使用。

请参阅ActionController :: RecordIdentifier.partial_path的代码,了解如何从对象计算路径。

答案 1 :(得分:1)

Dave Ray的回答是正确的--Rails在这里没有对变量名做任何事情。在一般情况下,您可以使用ParseTree库进行内省检查,但这有可移植性问题(JRuby,Ruby 1.9等)。