2012-01-15 2 views

ответ

2

#provide работает в почти таким же образом, как #content_for, кроме того, что #provide не конкатенации блоков. То есть - и следующий код списан из документации - скажем, у вас есть эти #content_for с, возможно, в нескольких шаблонах, но определяются в следующем порядке:

<%Qcontent_for :navigation do %Q< 
    <li><%= link_to 'Home', :action => 'index' %></li> 
<% end %> 

<% content_for :navigation do %> 
    <li><%= link_to 'Login', :action => 'login' %></li> 
<%Qend %> 

Теперь, следующий будет оказывать как элементы навигации в ун-упорядоченный список, «Home» первый затем «Логин»:

<ul><%= content_for :navigation %></ul> 

#provide не сцеплять и сделало бы список с, но один элемент.

+0

Идеальный смысл. Благодаря! – Slick23

1

Обеспечивают отправит прямо в макете, тогда как РАЗ content_for позволит Добавление информации для отправки на выход.

Используйте, если вы знаете, что отправите только один раз на макет, используйте content_for, если вы хотите или можете динамически отправлять дополнительную информацию.

Это на самом деле немного сложнее, чем выше, но приведенная выше сокращенная версия.

Dave

Смежные вопросы