Подтвердить что ты не робот

Установить макет для определенных действий?

Моя папка app/views/layouts выглядит следующим образом:

application.html.erb
user_sessions.html.erb
errors.html.erb

Эти функции прекрасны, и у меня нет проблем с ними, но теперь мне нравится добавлять новый макет для подсказок, но только на действия индекса и show.

Работает ли "tips.index.html.erb"?

4b9b3361

Ответ 1

Добавьте новый макет, как вам нравится, "tips.html.erb"

В контроллере подсказок добавьте следующее:

layout "tips", :only => [ :index, :show ]

Вы можете указать макет для определенного действия, используя:

def new 
    render(:layout => "layouts/application")
end

Я никогда не пробовал использовать несколько указателей макета в контроллере. Возможно, добавление другого

layout "standard", :only => [ :new, :edit ] 

может работать...

Ответ 2

Если вы хотите использовать несколько макетов в контроллере, используйте следующий код: (action_name - это предопределенная переменная, которую вы можете использовать непосредственно в Rails)

class OrdersController < BaseController
  layout :determine_layout

private
  def determine_layout
    %w(new).include?(action_name) ? "some_layout" : "public"
  end
end

см. ниже: fooobar.com/info/150106/...