Rails view 中使用 render 方法显示 partial 页面的问题

ryan · April 28, 2013 · Last by Ryan replied at April 29, 2013 · 3189 hits

我有以下三种 render partial 页面的代码,经过测试,只有 1,3 两个办法是正常显示了 partial 页面。是不是说,如果使用 collection 这个 symbole 来设定参数的话,partial 页面必须得与所引用 collection 类名的相同的:比如_collection.html.erb才能正常引用,而其他的不同名 partial 页只能做一个迭代呢? (比如第二种在有 collection 作为参数时候会出错: undefined local variable or methodcollection' for #<#Class:0x007fab417a6ae0:0x007fab45115b00>`,而如果显示纯文本,会循环 collections.count 次数个。

后来我还尝试下:locals参数,貌似它不用管 partial page 的命名规范。

第一种

<%= render :partial=>"collections/collection",:collection=>@user.collections%>

第二种

<%= render :partial=>"layouts/profile",:collection=>@user.collections%>

第三种

<%= render :partial=>"layouts/collection",:collection=>@user.collections%>

partial page

<%= collection.collection_type %>

经指点,第二种方法可如此写

<%= render :partial=>"layouts/profile",:collection=>@user.collections :as=>collection%>

厉害了。

有个 :as 参数 :as => :collection

#1 楼 @doitian 怎么写,是放在第二种方法里的么?

<%= render :partial=>"layouts/profile",:collection=>@user.collections, :as => :collection %>

#3 楼 @doitian 原来如此!确实管用!而且 as 可以设定任何名字的参数。多谢!

我喜欢 LZ 的头像

#5 楼 @zlx_star 哈哈哈,社区里还见到过和我一样的。

You need to Sign in before reply, if you don't have an account, please Sign up first.