我目前能够在JS中呈现部分内容:
$("#cmtList_<%= @commentable.id %>").prepend("<%=escape_javascript(render :partial =>"comments/comment", :locals => {:comment => @comment})%>");
上述作品在渲染/返回一条新评论时会膨胀。
现在我想重用相同的部分(保持DRY),但是能够将注释数组作为@Comments传递,并让Rails使用相同的部分循环遍历所有@comments记录(1或更多),我尝试了这个,但它错了:
$("#cmtList_<%= @commentable.id %>").prepend("<%=escape_javascript(render :partial => "comments/comment", :collection => {:comment => @comments})%>");
有什么想法吗?
由于
答案 0 :(得分:3)
在escape_javascript中尝试这个:
render :partial => "comments/comment", :collection => @comments
文档说这也应该有效(对我来说太神奇了):
render @comments
从这里检查“3.4.5渲染集合”: http://guides.rubyonrails.org/layouts_and_rendering.html
答案 1 :(得分:1)
尝试:
$("#cmtList_<%= @commentable.id %>").prepend("<%=escape_javascript(render :partial => "comments/comment", :collection => @comments)%>");
将查找局部变量“comment”。
了解更多信息:http://guides.rubyonrails.org/layouts_and_rendering.html