“渲染@collection”有什么作用?

时间:2010-04-02 16:15:30

标签: ruby-on-rails partial-views

我正在尝试通过查看示例应用程序来更好地学习Rails,并且在查看this line of the source of railscasts.com时,我注意到它是这样做的:

<div class="episodes">
    <%= render @episodes %>
  </div>

这到底发生了什么?为什么渲染函数没有记录?或者是吗?

3 个答案:

答案 0 :(得分:6)

这是一个方便的快捷方式

<%= render :partial => "episode", :collection => @episodes %>

这是另一种做法

<% for episode in @episodes do %>
  <%= render :partial => "episode", :locals => { :episode => episode }
<% end %>

它的作用非常明显:)

希望有道理:)

顺便说一下,我真的很难找到这方面的文档。

答案 1 :(得分:2)

这是一个新的捷径:

<%= render @episodes %>

# equivalent to
<%= render :partial => 'episode', :collection => @episodes %>

您还可以使用单个项目执行快捷方式

<%= render 'comment', comment => @comment  %>

# equivalent to
<%= render :partial => 'comment', :locals => {:comment => @comment} %>

答案 2 :(得分:2)

这是

的简写

render :partial => "episode", :collection => @episodes

上面的表单记录在render (ActionController::Base)下的Rails API docs中。除了Rails Guides之外,我没有记录速记表格。