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

ryan · 2013年04月28日 · 最后由 Ryan 回复于 2013年04月29日 · 3194 次阅读

我有以下三种 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 哈哈哈,社区里还见到过和我一样的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号