Rails> = 3.0.8 рендерит встроенный код с неработающим макетом - PullRequest
1 голос
/ 13 июля 2011

Кажется, что метод рендеринга изменился. В представлении я имел обыкновение делать следующее:

= render :layout => 'some_layout' do
  some stuff to be rendered

Кажется, лучшее решение - переместить содержимое в частичное и вызвать макет

= render :partial => 'some stuff to be rendered', :layout => 'some_layout'

Мне просто интересно, сталкивался ли кто-нибудь с этим и является ли это ошибкой или предполагаемым изменением?


EDIT

Отрисовка блока в линию с компоновкой работ. Проверьте часть о применении макета к блоку в любом шаблоне в http://api.rubyonrails.org/classes/ActionView/Partials.html

Проблема, с которой я столкнулся, заключается в том, что последняя версия HAML неправильно отображает вложенные вызовы рендеринга. https://github.com/nex3/haml/issues/412

Ответы [ 2 ]

0 голосов
/ 08 ноября 2011

Это исправлено в самой последней версии HAML v3.1.3

0 голосов
/ 13 июля 2011

Судя по вашему сообщению, вы пытаетесь сделать это в представлении.

Возможно ли, что вы путаете ActionController рендер и ActionView рендер?Смотря @ документацию API для 2.3.8 и 3.x, кажется, что в рендере ActionView не было опции :layout.


UPDATE

На самом деле, я мог быть вне базы.Кажется, что есть опция :inline, как описано здесь .

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

Возвращает результат рендера, который определяется хэшем опций.Основные параметры:

  • : частичный - см. ActionView :: Partials.
  • : update - вызывает update_page с указанным блоком.
  • : file - рендерит явный файл шаблона (раньше он использовался по умолчанию), добавьте: localals для передачи в них.
  • : inline - визуализирует встроенный шаблон, аналогичный тому, как это делается в контроллере.
  • : text - визуализирует переданный текст.
...