#ruby-on-rails #ruby #ruby-on-rails-3 #layout
#ruby-on-rails #ruby #ruby-on-rails-3 #макет
Вопрос:
У меня есть пространство имен admin и контроллер Admin::UserController. Когда я пытаюсь использовать макет с именем admin с символом, rails выдает исключение, но если я вызываю layout admin в виде строки, работает успешно.
Сообщение об исключении выглядит следующим образом:
Вы указали nil в качестве макета, но такой метод не был найден
Я просто хочу знать, почему это происходит…
Спасибо.
Ответ №1:
Согласно here:
http://ap.rubyonrails.org/classes/ActionController/Layout/ClassMethods.html
Иногда требуется чередовать макеты в зависимости от информации о времени выполнения, например, зарегистрирован ли кто-либо в системе или нет. Это может быть сделано либо путем указания ссылки на метод в качестве символа, либо с помощью встроенного метода (как proc).
Короче говоря, когда вы указываете символ, Rails фактически ожидает, что это будет ссылка на метод, поэтому он утверждает, что метод не был найден.