Как рендер рендеринга работает в контроллере? Почему что-то не использует макет? - PullRequest
2 голосов
/ 16 февраля 2010

Я пытался написать рендер в действии, но поведение макета отличается, почему?

def show
   # assuming we have a partial in app/views/shared/_panel_show.html.erb
   #render "shared/_panel_show" # have layout
   #render "/shared/_panel_show" # without layout
   #render "shared/panel_show" # Template is missing
   #render :partial => "shared/panel_show" # without layout
   render :partial => "/shared/_panel_show",:layout => "application" # have layout
end

Я хочу визуализировать частичное и следовать макету контроллера.

Ответы [ 2 ]

3 голосов
/ 16 февраля 2010

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

Я бы предложил создать новое представление (и действие в нашем контроллере), скажем shared / full_panel_show, которое просто отображает частичное.

<%= render :partial => 'shared/panel_show' %>

Теперь в вашем контроллере рендер новый вид:

def show
  render :action => 'shared/full_panel_show'
end

В зависимости от того, что вы используете для представления шоу, вместо этого вы можете просто визуализировать партиал из его представления.

0 голосов
/ 25 сентября 2014

У меня есть решение для рендеринга партиала с макетом в контроллере

render 'shared/_panel_show', layout: "layouts/application"

просто удалите «частичный» метод и добавьте подчеркивание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...