Можно ли использовать партиалы с опцией макета внутри контроллера? - PullRequest
0 голосов
/ 06 мая 2010

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

  def xyz
    render :partial => 'platinum_home', :layout => 'platinum_layout'
  end

Но если я сделаю следующее внутри частичного

<% render(:layout => "platinum_layout") do %>
  blah blah blah
<% end %>

Работает просто отлично, первый пример невозможен при использовании рельсов?

Ответы [ 2 ]

2 голосов
/ 06 мая 2010

В вашем контроллере сверху добавьте следующее:

class SomeController < ApplicationController
    layout "platinum_layout", :only => :xyz
1 голос
/ 06 мая 2010

Частичный рендеринг в контроллере чаще всего используется вместе с вызовами Ajax, которые обновляют только один или несколько элементов на странице без перезагрузки. Рендеринг партиалов из контроллера позволяет использовать один и тот же частичный шаблон как при полностраничном рендеринге (путем вызова его из шаблона), так и при обновлении подстраницы (из-за действия контроллера, отвечающего на вызовы Ajax). По умолчанию текущий макет не используется.

Таким образом, чтобы использовать текущий макет для вашего только что используемого.

  def xyz
    render :partial => 'platinum_home', :layout => true
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...