【问题标题】:Rails 4.2: After manual changing of model name Rails server complains about helpers for the old modelRails 4.2:手动更改模型名称后 Rails 服务器抱怨旧模型的助手
【发布时间】:2016-06-16 14:05:40
【问题描述】:

我正在开发 Rails4.2/mongoid 应用程序。

我需要更改一个模型的名称并手动完成。我确信在任何文件中都没有提及旧型号名称,手动反复检查,然后使用 grep。 还更改了 MongoDB 中的集合名称

尝试打开应用程序上的任何 url 会导致

Couldn't find ExamplesHelper, expected it to be defined in helpers/examples_helper.rb

应用程序跟踪点的目标

app/controllers/application_controller.rb:1:in '<top (required)>' app/controllers/home_controller.rb:1:in '<top (required)>'

上述控制器中没有提及任何模型/控制器/助手。这是仅有的两个继承自ActionController::Base

我找到了一个类似的question,但不能说我喜欢这个解决方案。

至少有人能指出我正确的方向吗?真的被这个难住了。

【问题讨论】:

  • 您是否清除了 spring,杀死了 ruby​​ 进程等(抱歉“您是否将其关闭并重新打开”评论)
  • 你重命名了文件吗? example.rb 也应该重命名
  • 您是否尝试重新启动 Rails 服务器?
  • 好的,我找到了。 Grep 工作正常,但我也应该使用find . -name "example*" 来确保我重命名了所有文件。现在有趣的一点是:我错过的那个是 app/helpers/examples_helper.rb,是的,那个 rails 说它找不到……去看看。一旦我根据新的模型名称重命名了这个助手,它就开始工作了。感谢@niceman 提醒我再次检查文件名。

标签: ruby-on-rails ruby-on-rails-4 routes


【解决方案1】:

你需要创建一个助手:

# app/helpers/examples_helper.rb

module ExamplesHelper
end

【讨论】:

  • Example 模型不再存在,它被重命名为其他东西,但 rails 一直要求它。
  • 然后找到单词example在您的项目中的相遇位置并删除此行
  • @itsnikolay 他说他用grep 来验证这个词不存在:)
  • @BartC 尝试运行 spring stop 并重新运行您的服务器
猜你喜欢
  • 2012-12-07
  • 1970-01-01
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 2012-03-27
相关资源
最近更新 更多