Хорошо, поэтому я изменил свой файл миграции, который, очевидно, вызывал проблему.schema.rb
выглядит идентично, но seeds.rb
теперь это…
модели
user.rb has_many :bands, foreign_key: 'manager_id'
band.rb belongs_to :manager, class_name: 'User', foreign_key: 'manager_id'
seed.rb
User.destroy_all
Band.destroy_all
user = User.new(name: 'John', username: "johnny", password: "nice")
user.save
user = User.find_by_name('John')
user_band = Band.new(name: 'Band #1', description: 'My first band', manager_id: user.id)
if user_band.save
puts "Done"
else
puts "Incomplete"
end
Ошибки были: ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: main.managers: INSERT INTO "bands" ("name", "description", "manager_id", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?)
Изменен файл миграции для полос
Ранее
create_table :bands do |t|
t.belongs_to :manager, foreign_key: true
t.string :name
t.text :description
t.timestamps
end
Изменено на
create_table :bands do |t|
t.belongs_to :manager
t.string :name
t.text :description
t.timestamps
end
Удалена опция , foreign_key: true
, Удалена БД, запущены миграции и теперь.
Работает…