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 >