我想要传递一个包含原点的局部变量,这个变量只包含一个带有值的符号。
当我使用这段代码时,它工作得很好,源变量可以在部分变量中访问:
render :partial => "products", :collection => @products, :locals => {:origin => :gallery}但是当我使用这段代码时,没有设置原点,也不能在部分中访问:
render @products, :locals => {:origin => :gallery}这里的区别是什么?第二行代码不是像第一行一样呈现部分吗?
发布于 2012-04-18 17:37:30
<%= render @products %>确实是呈现部分的简写语法。但是使用简写语法,Rails将忽略":locals“变量。在Rails Guides中有更多关于这方面的信息。
因此,如果您希望将额外的选项传递给渲染,则必须指定":partial => ...“。如果你想知道为什么会发生这种情况,你可以看看Rails source。
发布于 2013-03-29 09:19:25
这里有一个很好的解释:Rails: confused about syntax for passing locals to partials
简而言之,您可以在第二个示例中省略:locals:
render @products, :origin => :galleryhttps://stackoverflow.com/questions/9990539
复制相似问题