渲染@object和locals vs render:partial

时间:2012-04-03 09:27:53

标签: ruby-on-rails-3 renderpartial partials

我想传递包含原点的局部变量来到特定页面,此变量只包含带有值的符号。

当我使用这段代码时,它完美无缺,原始变量可以在partial:

中访问
render :partial => "products", :collection => @products, :locals => {:origin => :gallery}

但是当我使用此代码时,原点未设置且无法在partial中访问:

render @products, :locals => {:origin => :gallery}

这有什么区别?第二行代码是不是像第一行一样呈现部分?

1 个答案:

答案 0 :(得分:8)

<%= render @products %>

确实是渲染部分的简写语法。但是使用简写语法,Rails将忽略“:locals”变量。 Rails Guides中有更多内容。

因此,如果要将额外选项传递给渲染,则必须指定“:partial =&gt; ...”。如果你想知道为什么会这样,你可以看看Rails source