渲染部分:对象vs:本地人
<%= render :partial => 'partial/path', :locals => {:xyz => 'abc'} %> VS
 <%= render :partial => 'partial/path', :object => @some_object %> 
我认为第一个在部分中创build一个名为xyz的局部variables,第二个在局部中创build一个名为object的局部variables。 那么区别是什么呢? (除了本地人允许更多的variables)
在第二种情况下,使用:object将默认定义一个与部分名称相同的variables。 如果我的部分模板名为_user.html.erb,那么模板中会定义一个名为“user”的本地variables。
您可以使用以下命令指定不同的variables名称:as =>“another_name”。
这里logging: http :
…和较老的Rails(版本<= v3.09): http ://apidock.com/rails/ActionView/Partials
第二种forms
 render :partial => 'account', :object => @some_account 
 将确保部分中的accountvariables将被设置为@some_account 。 您可以使用:as选项来重命名该variables。 
 最大的优点是:locals是这样的 
- 你对对象和名字有非常清晰的控制
- 你可以分配多个variables
所以你可以做类似的事情
 render partial => 'some_view', :locals => { :user => account.user, :details => some_details_we_retrieved } 
在需要时做出明确的分离。
  :locals方法的缺点是它比较冗长,有时也很简单 
 render :partial => 'account' 
是相同的
 render :partial => 'account', :locals => {:account => @account } 
所以使用最适合你的那个(或者最适合的地方)。
如果您使用Rails 3+,则可以使用更简单的语法:
 # Instead of <%= render partial: "account", locals: { account: @buyer } %> <%= render 'account', account: @buyer %> 
来源: 操作视图部分