Неинициализированная константа ApplicationRecord
Я работаю над учебником по рельсам в Интернете и получаю следующее сообщение об ошибке при переходе на http://localhost:3000/
"неинициализированная константа ApplicationRecord"
и это дает мне следующий код, выделяющий первую строку.
class User < ApplicationRecord
attr_accessor :remember_token
before_save { self.email = email.downcase }
validates :name, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :email, presence: true, length: { maximum: 255 },
Ответы
Ответ 1
Похоже, вы используете учебник Rails 5, но работаете с Rails 4. В Rails 5 все модели наследуют от ApplicationRecord
, а Rails 4 из ActiveRecord::Base
Немедленное исправление:
class User < ActiveRecord::Base
...
end
Долгосрочное исправление, переключитесь на Rails 5 и учитесь с Rails 5
Ответ 2
Ссылаясь на вселенный ответ от fooobar.com/questions/1647503/...
Создайте новый файл с именем app/models/application_record.rb
следующего содержания:
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end
Ответ 3
Если вы получаете это после перехода с Rails 5 на Rails 6, убедитесь, что вы изменили
config.load_defaults 5.2
для
config.load_defaults 6.0
в вашем файле config/application.rb
.