Я, должно быть, упускаю что-то действительно очевидное, но здесь идет речь:
Я пытаюсь создать Наблюдение, которое ссылается на несколько других объектов: ученика, задачу, пользователя истандарт.
Но, когда я запускаю Observation.create!(...attributes)
, я получаю следующую ошибку:
ActiveRecord::RecordInvalid: ActiveRecord::RecordInvalid: Validation failed: Task must exist, User must exist, Standard must exist, Student must exist
Тем не менее, перед строкой Observation.create!
для каждого объекта, который я напечатал, примерно так:
user = User.find(params[:user])
print "User exists? #{User.exists?(params[:user])}"
, который напечатал User exists? true
Если существуют все записи (Задача, Пользователь, Стандарт, Студент), что может вызвать сбой Наблюдения с этой ошибкой?
Это миграция для наблюдения:
class CreateObservations < ActiveRecord::Migration[5.2]
def change
create_table :observations do |t|
t.references :task, foreign_key: true
t.references :user, foreign_key: true
t.references :standard, foreign_key: true
t.references :student, foreign_key: true
t.timestamps
end
end
end
, а это модель:
class Observation < ApplicationRecord
belongs_to :Task
belongs_to :User
belongs_to :Standard
belongs_to :Student
end