【问题标题】:Rails <top (required)>: uninitialized constantRails <top (required)>: 未初始化的常量
【发布时间】:2013-04-25 10:46:52
【问题描述】:

我有一个名为 class App::BaseModel 的模型到一个名为 base_model.rb 的文件中

然后我有一个message.rb 文件,第一行有以下内容:

class App::Message &lt; App::BaseModel

启动服务器时出现错误:

/path/to/app/message.rb:1:in `<top (required)>': uninitialized constant App::BaseModel (NameError)

有人可以帮我解决这个问题吗?

干杯

【问题讨论】:

  • base_model.rb文件在哪个目录下?
  • 它在 /path/to/app/app/models/my_app_name/,奇怪的是我能够让它在 Mac 上运行,但在 Linux 上却不行。

标签: ruby-on-rails model nameerror initialization uninitialized-constant


【解决方案1】:

base_model.rb 应该是 => class BaseModel WebActivity &lt; ActiveRecord::Base

对于message.rb,它应该是=> class Message &lt; ActiveRecord::Base

【讨论】:

  • 问题是我使用的是手工制作的 ActiveRecord,我没有使用默认的 Rails ActiveRecord。
【解决方案2】:

Rails 有一个命名约定,因此如果要将模型放入 App 模块 (App::BaseModel),则应将 base_model.rb 放入模型目录中的 app 目录中。然后 Rails 将以正确的方式加载您的文件和类。

【讨论】:

  • 对不起,我把文件放到/path/to/app/app/models/my_app_name/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-18
  • 2013-04-17
  • 2011-04-26
相关资源
最近更新 更多