进行迁移时,出现以下错误 “ ActiveRecord :: RecordInvalid:验证失败:Huntinganimals必须存在”
我不确定在哪里声明“ huntinganimals”。
class Picture < ApplicationRecord
belongs_to :camera_model
has_one :animals, :as =>:HuntingAnimals
end
class User < ApplicationRecord
has_one :animals, :as =>:HuntingAnimals
end
class Animal < ApplicationRecord
belongs_to :HuntingAnimals, :polymorphic => true
end
class CreateAnimals < ActiveRecord::Migration[5.2]
def change
create_table :animals do |t|
t.references :HuntingAnimals, polymorphic: true
end
end
end
答案 0 :(得分:0)
在迁移中使用t.references
时,第一个参数必须是表的名称,而不是模型的名称。因此,对于您的模型HuntingAnimal
,该表可能被称为hunting_animals
,因此您将要引用表名的单数形式,因此:t.references :hunting_animal, polymorphic: true
您还希望在所有模型中进行此更改。