Подтвердить что ты не робот

Неинициализированная константа 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 },
4b9b3361

Ответ 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.