【问题标题】:application.rb defined methods not being found?找不到application.rb定义的方法?
【发布时间】:2014-12-11 10:09:27
【问题描述】:

我正在从事一个项目,我从旧版本的 Rails(我认为是 1 或 2)继承了一些遗留代码。在修补它之后,我尝试启动它,但我在我的一个控制器中遇到了麻烦。具体来说,@user = current_user || User.new 行说明找不到 current_user。在进行了一些挖掘之后,我看到 def current_user 挂在我的 application.rb 文件中。为什么应用不加载这个方法?

我是否误解了 application.rb 应该如何工作?

(如果重要的话,这个方法似乎受到保护,但我不知道这会如何阻止应用看到这个定义。)

【问题讨论】:

  • 很难说没有更多的上下文。您可能没有在您认为自己的类上定义方法,或者您在意想不到的地方使用它。 ApplicationController 也曾经是 application.rb 的特例(而不是 application_controller.rb)——不确定它何时停止加载前者
  • 谢谢弗雷德里克——你的回答,以一种非常迂回的方式,实际上导致了答案。没错,显然有两个 application.rb 文件。我实际上是继承此代码的第三组。第一个是敬虔的,并设法写了整件事。第二个尝试为新版本的 Rails 更新应用程序,但失败了。他们没有注意到有两个不同的 application.rb 文件并设法在 app/controllers 和 config 文件夹之间切换文件。我无话可说……我觉得自己没有意识到这就是发生的事情一样愚蠢。
  • 哦,作为一个圆满的结局,我已切换文件并将控制器文件夹中的 application.rb 正确重命名为 application_controller.rb。现在一切正常......到目前为止。

标签: ruby-on-rails config


【解决方案1】:

查看原始问题的 cmets。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 2014-08-11
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    相关资源
    最近更新 更多