#ruby-on-rails #ruby
#ruby-on-rails #ruby
Вопрос:
Я «детский программист», создаю новое приложение Rails и хотел бы добавить некоторые исходные данные. Приложение будет отображать разные прически, принадлежащие пользователю, что означает, что для каждой прически требуется идентификатор пользователя. В моем исходном файле я создал пользователей и прически, однако, когда я запускаю rails: dbseed в консоли, это выдает ошибку:
"NameError: undefined local variable or method `user' for main:Object
Did you mean? users"
Когда я запускаю rails c, я вижу, что пользователи созданы, а мои прически — нет. Пожалуйста, кто-нибудь может мне помочь и объяснить, почему это так? Спасибо
ИСХОДНЫЙ ФАЙЛ:
Hairstyle.destroy_all
User.destroy_all
users = [
{
first_name: 'test',
last_name: 'Inniss',
email: 'angela@hair.com',
password: '123456'
},
{
first_name: 'test2',
last_name: 'Clarke',
email: 'aaron@hair.com',
password: '123456'
}
]
User.create!(users)
user.save
hairstyles = [
{
name: 'Single Braids',
description: 'Really easy to maintain',
category: 'Braids',
video_url: 'www.google.com',
photo_url: 'https://images.unsplash.com/photo-1533233336213-b3a32825c689?ixlib=rb-1.2.1amp;ixid=eyJhcHBfaWQiOjEyMDd9amp;auto=formatamp;fit=cropamp;w=1049amp;q=80',
user_id: User.first
},
{
name: 'Crochets',
description: 'Protective style',
category: 'Braids',
video_url: 'www.google.com',
photo_url: 'https://images.unsplash.com/photo-1533233336213-b3a32825c689?ixlib=rb-1.2.1amp;ixid=eyJhcHBfaWQiOjEyMDd9amp;auto=formatamp;fit=cropamp;w=1049amp;q=80',
user_id: User.first
}
]
Hairstyle.create!(hairstyles)
Комментарии:
1. Итак, вы создаете много пользователей. На какой из них следует ссылаться
user
изuser.save
? В любом случае это избыточно,create!
либо создает пользователей, либо нет. Ни у одного из этих пользователей нет ожидающих изменений.
Ответ №1:
Просто удалите эту строку
user.save
В этом нет смысла, тебе это не нужно.
Комментарии:
1. Привет @spickermann Я удалил user.save сейчас, и у меня нет никаких ошибок, что, однако, здорово, когда я ввожу «rails c» в консоль, а затем делаю прическу. все, что я вижу, это пустой массив [ ]. Должен ли я не видеть 2 прически, которые я создал в своем исходном коде? Заранее спасибо
2. @AngelaInniss а пользователи там есть?
3. Привет @Ursus Да, пользователи есть, что странно. Я продолжаю запускать rails db: seed, и пользователи каждый раз стираются и создаются. Может ли это быть как-то связано с моей Моделью?
4. Одна ошибка заключается в том, что вы назначаете пользователя, весь объект,
user_id
. Либоuser_id: User.first.id
, либоuser: User.first
.5. Привет @ursus Я пробовал оба, и это все еще не работает. У меня есть пользователи и нет причесок, когда я набираю rails c, Hairstyle.all. Это так странно, пожалуйста, дайте мне знать, если вы хотите увидеть какие-либо другие файлы / у вас есть еще идеи. Я совершенно застрял на этом этапе: S