2015-02-06 5 views
0

Я развиваюсь в Ruby on Rails некоторое время, поэтому я совершенно смущен тем, почему это происходит. Я создал контроллер под названием ApiController, как вы можете видеть ниже.Ошибка при ошибке NoMethod в контроллере RoR

class ApiController < ActionController::Metal 

    def documentation 

    end 

    def request_manager 

    end 

end 

Вот маршруты, которые я установил для установки вида документации.

Rails.application.routes.draw do 

    root 'landing#home' 

    get 'api' => 'api#documentation' 

end 

Существует файл documentation.html.erb в папке апи, а также, но Независимо от того, что я делаю, я получаю следующее сообщение об ошибке.

enter image description here

Это не имеет никакого смысла для меня, почему это не правильно маршрутизации и имеет меня полностью сбит с толку.

В качестве побочного примечания контроллер посадки работает отлично и направляется на домашнюю страницу без проблем, так что это просто этот контроллер.

+0

Это не ошибка маршрутизации, не могли бы вы показать нам след? – scorix

+1

. Вы используете .each в представлении или где-то еще в некоторой переменной экземпляра. Я полагаю, что это nil означает, что он не получает никакого значения, поэтому каждый из них не работает, и он бросает ошибку. – Deep

+0

На самом деле я только что понял. Оказывается, что ActionController :: Metal отключает функции, включая рендеринг, поэтому, когда вы пытаетесь сделать его рендером как обычный контроллер, он вызывает ошибку при загрузке, а ошибка находится где-то в файлах классов основного кода Ruby. Поэтому я не смог найти то, что было не так, пока я не посмотрел дополнительную документацию для контроллера Metal. – cmw2379

ответ

0

На самом деле я только что понял. Оказывается, что ActionController :: Metal отключает функции, включая рендеринг, поэтому, когда вы пытаетесь сделать его рендером как обычный контроллер, он вызывает ошибку при загрузке, а ошибка находится где-то в файлах классов основного кода Ruby. Поэтому я не смог найти то, что было не так, пока я не посмотрел дополнительную документацию для контроллера Metal.

Я использовал ActionController :: Metal для его скорости и просто не понимал, насколько он ушел от функциональности в этом процессе.

Смежные вопросы