Что: местные жители для рендера в рельсах? - PullRequest
2 голосов
/ 08 января 2012

Вот определение API для рендера:

render(options = {}, locals = {}, &block)

Returns the result of a render that’s dictated by the options hash. The primary options are:

    :partial - See ActionView::Partials.

    :file - Renders an explicit template file (this used to be the old default), add :locals to pass in those.

    :inline - Renders an inline template similar to how it’s done in the controller.

    :text - Renders the text passed in out.

Там нет объяснения о том, что цель местных жителей здесь? Для чего местные жители?

Спасибо.

Ответы [ 2 ]

5 голосов
/ 08 января 2012

Для передачи локальных переменных в частичный шаблон, в отличие от переменных экземпляра контроллера.

См. Раздел 3.4.4, Передача локальных переменных в Руководстве по макетам и визуализации.

2 голосов
/ 08 января 2012

Например.

  1. < %= render :partial => "account" %>

    Это означает, что уже существует переменная экземпляра @account для частичного использования, и вы передаете ее.

  2. <%= render :partial => "account", :locals => { :account => @buyer } %>

    Это означает, что вы передаете локальную переменную экземпляра, называемую @buyer, в партиал «account», а переменная в партиале «account» называется «account». С другой стороны, хеш { :account => @buyer } для: locals просто используется для передачи локальной переменной в частную. И вы также можете использовать ключевое слово так же, как и.

<%= render :partial => "contract", :as => :agreement

, что совпадает с:

<%= render :partial => "contract", :locals => { :agreement => @contract }

...