Ошибка при создании объекта БД из консоли IRB

ruby-on-rails #error-handling #database-migration #nomethoderror

#ruby-on-rails #обработка ошибок #база данных-миграция #nomethoderror

Вопрос:

Когда я пытался создать объект из консоли IRB, я получил ошибку, которую я не совсем понял. Я уже создал модель с именем Subject .

Миграция:

 class CreateSubjects < ActiveRecord::Migration[6.1]
  def change
    create_table :subjects do |t|
      t.string :name
      t.integer :position
      t.boolean :visible

      t.timestamps
    end
  end
end
 

Ошибка:

     subjects = Subject.new
    (irb):5:in `<main>': uninitialized constant Subject (NameError)
    Did you mean?  Object
            from /home/user/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/irb-1.3.5/exe/irb:11:in `<top (required)>'
            from /home/user/.rbenv/versions/3.0.1/bin/irb:23:in `load'
        from /home/user/.rbenv/versions/3.0.1/bin/irb:23:in `<main>'
 

Комментарии:

1. То, что вы поделили, — это миграция, она используется для создания таблицы в базе данных для использования объектов, необходимых для создания модели.

2. да, я это сделал

3. Извините, что сначала не заметил, что вы находитесь в irb то есть interactive ruby shell для rails, которые вам нужно сделать rails c , вы можете создавать объекты своих моделей.

4. Привет @BAVANMY, не могли бы вы также предоставить данные о своей модели. Как упоминал @Abdul, удобнее работать с вашего rails console , чтобы создать objects в вашем DB . Эта ошибка возникает, когда ваш ClassObject ( Subject в данном случае) не создан должным образом в ваших таблицах. Возможные проблемы: typos , missing_migrations , и многое другое. Я предлагаю вам перезагрузить консоль и повторить попытку. Вы можете найти больше информации здесь: < thoughtco.com/nameerror-uninitialized-2907928 >