我想传递包含原点的局部变量来到特定页面,此变量只包含带有值的符号。
当我使用这段代码时,它完美无缺,原始变量可以在partial:
中访问render :partial => "products", :collection => @products, :locals => {:origin => :gallery}
但是当我使用此代码时,原点未设置且无法在partial中访问:
render @products, :locals => {:origin => :gallery}
这有什么区别?第二行代码是不是像第一行一样呈现部分?
答案 0 :(得分:8)
<%= render @products %>
确实是渲染部分的简写语法。但是使用简写语法,Rails将忽略“:locals”变量。 Rails Guides中有更多内容。
因此,如果要将额外选项传递给渲染,则必须指定“:partial =&gt; ...”。如果你想知道为什么会这样,你可以看看Rails source。