Что делает "render @collection"? - PullRequest
       6

Что делает "render @collection"?

2 голосов
/ 02 апреля 2010

Я пытаюсь изучить Rails лучше, посмотрев примеры приложений, и, глядя на эту строку источника railscasts.com , я заметил, что это так:

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

Что именно здесь происходит? Почему это не задокументировано в функции рендеринга? Или это?

Ответы [ 3 ]

6 голосов
/ 02 апреля 2010

Это удобный ярлык для выполнения

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

что является еще одним способом сделать

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

, что довольно очевидно в том, что он делает :)

Надеюсь, что имеет смысл:)

кстати, действительно удивительно, что я не смог найти документы для этого тоже.

2 голосов
/ 02 апреля 2010

Это сокращение для

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

Форма выше задокументирована в Rails API документах в render (ActionController::Base). Стенограмма не документирована, насколько я вижу, за исключением Rails Guides .

2 голосов
/ 02 апреля 2010

Это новый ярлык:

<%= render @episodes %>

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

Вы также можете делать ярлыки с отдельными элементами

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

# equivalent to
<%= render :partial => 'comment', :locals => {:comment => @comment} %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...