【问题标题】:Getting error NoMethod error in RoR controller在 RoR 控制器中出现错误 NoMethod 错误
【发布时间】:2015-02-06 03:06:21
【问题描述】:

我已经在 Ruby on Rails 中开发了一段时间,所以我完全不明白为什么会发生这种情况。我创建了一个名为 ApiController 的控制器,如下所示。

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 文件,但是 无论我做什么,我都会收到以下错误。

为什么它没有正确路由并让我完全困惑,这对我来说毫无意义。

附带说明一下,登陆控制器工作得非常好,并且毫无问题地路由到主页,所以它就是这个控制器。

【问题讨论】:

  • 不是路由错误,能否给我们看看trace?
  • 您在视图中使用 .each 或在某个实例变量上的其他位置使用我想它是 nil 意味着它没有得到任何值,所以每个都没有在它上面工作并且它正在抛出错误。跨度>
  • 其实我只是想通了。结果是 ActionController::Metal 关闭了包括渲染在内的必须功能,因此当您尝试将其渲染为普通控制器时,它会在加载时出错,并且错误位于 Ruby 主代码的类文件中的某个位置。因此,在查找更多有关 Metal 控制器的文档之前,我无法准确找到问题所在。

标签: ruby-on-rails controller routing


【解决方案1】:

其实我只是想通了。结果是 ActionController::Metal 关闭了包括渲染在内的必须功能,因此当您尝试将其渲染为普通控制器时,它会在加载时出错,并且错误位于 Ruby 主代码的类文件中的某个位置。因此,在查找更多有关 Metal 控制器的文档之前,我无法准确找到问题所在。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多