gpt4 book ai didi

ruby-on-rails - NameError:未初始化的常量ApplicationRecord

转载 作者:行者123 更新时间:2023-12-02 09:07:53 29 4
gpt4 key购买 nike

我收到上述错误,但是我相信我使用的是Rails 5:

turlingdrome$ rails -v
/Users/brianp/.rbenv/versions/2.5.3/lib/ruby/gems/2.5.0/gems/railties-5.2.3/lib/rails/app_loader.rb:53: warning: Insecure world writable dir /Users/brianp/work in PATH, mode 040777
Rails 5.2.0

turlingdrome$ rake db:migrate
rake aborted!
NameError: uninitialized constant ApplicationRecord
/Users/brianp/work/online-reporting/app/models/client.rb:1:in `<top (required)>'
/Users/brianp/work/online-reporting/config/routes.rb:7:in `block in <top (required)>'
/Users/brianp/work/online-reporting/config/routes.rb:1:in `<top (required)>'
/Users/brianp/work/online-reporting/config/environment.rb:5:in `<top (required)>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)

我不认为--trace有用...但是可以根据需要附加它...

最佳答案

在版本5之前,Rails生成了从ActiveRecord::Base继承的模型。

# rails g model foo.
class Foo < ActiveRecord::Base

end

Rails 5引入了 ApplicationRecord,它是等效于 ApplicationController的模型。因此在Rails 5上会生成以下内容:
# rails g model foo.
class Foo < ApplicationRecord

end

当您运行 rails new时,将生成ApplicationRecord类本身。

但是,这没有什么神奇的-它只是根深蒂固的惯例。
# app/models/application_record.rb
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end

如果您正在获取 NameError: uninitialized constant ApplicationRecord,则要么升级到Rails 5而不创建它,要么误删除了它。解决方案只是创建文件。

关于ruby-on-rails - NameError:未初始化的常量ApplicationRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55854257/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com