неопределенный метод `layout 'для #от контроллера - PullRequest
2 голосов
/ 07 октября 2010

Я пытался переключить макет, используя Ruby on Rails, но я получаю ошибку: неопределенный метод `layout 'для #.Я использую Rails 2.3.5 Я пропустил include?

Вот код:

class HelloController < ApplicationController

  def index

    layout 'standard'
    @message = "Goodbye!"
    @count = 3
    @bonus = "This is the bonus message!"
  end

end

1 Ответ

15 голосов
/ 07 октября 2010

Если вы используете layout как таковое, оно входит в определение класса, а не в действие.

class HelloController < ApplicationController

  layout 'standard'

  def index
    ...

Это говорит о том, что вы хотите использовать этот макет для рендеринга всех действий в этом контроллере..

Если вы хотите создать конкретный макет для этого одного действия, вы должны использовать render :layout следующим образом:

  def index
    @message =
    ...
    render :layout => 'standard'
  end

РЕДАКТИРОВАТЬ: документы (вниз) кажется, что вам нужно указать действие, а также макет при использовании определенного макета для одного действия.Я не помню, чтобы это было так, но если это так, то выше было бы render :action => 'index', :layout => 'standard'.

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