2015-02-06 50 views
0

我一直在Ruby on Rails中开发一段时间,所以我完全搞不清楚为什么会发生这种情况。我创建了一个名为ApiController的控制器,如下所示。RoR控制器中出现错误NoMethod错误

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 

有在API文件夹中的文件documentation.html.erb为好,但 不管我做什么,我得到了下面的错误。

enter image description here

这是没有意义的,我为什么它没有正确的路由,并有我完全莫名其妙。

作为一个侧面说明,登陆控制器工作得很好,路由到主页没有问题,所以它只是这个控制器。

+0

这不是路由错误,你能告诉我们跟踪吗? – scorix 2015-02-06 03:22:57

+1

你正在使用.each在视图中或某个实例变量的其他位置,我认为这是nil意味着它没有得到任何值,因此每个都不工作,它是抛出错误。 – Deep 2015-02-06 03:29:23

+0

其实我只是想通了。事实证明,ActionController :: Metal关闭必须的功能,包括渲染,以便当您尝试使其呈现为普通控制器时,它在加载时发生故障并且错误位于Ruby主代码的类文件中。因此,我查找了金属控制器的更多文档之后,我无法找到发生了什么问题。 – cmw2379 2015-02-06 03:47:11

回答

0

其实我只是想通了。事实证明,ActionController :: Metal关闭必须的功能,包括渲染,以便当您尝试使其呈现为普通控制器时,它在加载时发生故障并且错误位于Ruby主代码的类文件中。因此,我查找了金属控制器的更多文档之后,我无法找到发生了什么问题。

我使用ActionController :: Metal是因为它的速度,只是没有意识到它在过程中的功能被剥离了多少。