Создание исходных данных Rails с помощью внешних ключей

#ruby-on-rails #ruby #belongs-to #has-one

#ruby-on-rails #ruby #принадлежит #имеет один

Вопрос:

Я хочу создать исходные данные, которые соответствуют указанным ограничениям внешнего ключа.

Я получаю сообщение «неопределенный метод ‘create’ для nil: NilClass»

Мои команды:

 rails g model user login:string password:string
rails g model account gender:string age:integer first_name:string last_name:string user:references
  

seeds.rb

 User.delete_all
Account.delete_all
  

Попытка 1 для заполнения связанных таблиц

 @Jared = User.create [{login: "Jared", password: "password2"}]
@Jared.first.account.create([{gender: "male", age: 99, first_name: "Irish", last_name: "Coder"}])
  

Попытка 2 для заполнения связанных таблиц

 acct = Account.create [{gender: "male", age: 99, first_name: "Irish", last_name: "Coder"}]
@Jared.account = acct
  

user.rb

 class User < ActiveRecord::Base
  has_one :account
end
  

account.rb

 class Account < ActiveRecord::Base
  belongs_to :user
end
  

Ответ №1:

 @Jared = User.create [{login: "Jared", password: "password2"}]
@Jared.first.account.create([{gender: "male", age: 99, first_name: "Irish", last_name: "Coder"}])
  

где эта часть равна нулю

 @Jared.first
  

попробуйте:

 defaults = User.create(login: "Jared", password: "password2")
User.create{login: defaults.login, password: defaults.password, gender: "male", age: 99, first_name: "Irish", last_name: "Coder"}