我定义了三个类:
class Animal < ActiveRecord::Base
end
class Cat < Animal
has_many :toys
end
class Toy
validates_presence_of :cat
belongs_to :cat
end
当我创建一个属于猫的玩具时:
Cat.first.toys << Toy.create!(:name => 'Toy 1')
ActiveRecord::RecordInvalid: Validation failed: Cat can't be blank
答案 0 :(得分:3)
Cat.first.toys << Toy.create!(:name => 'Toy 1')
代码序列的执行方式如下:
tmp_toy = Toy.create!(:name => 'Toy 1')
Cat.first.toys << tmp_toy
因此,当您创建新玩具时,您没有提供所需的猫,这会导致错误。
您可以使用以下内容:
Cat.first.toys.create!(:name => 'Toy 1')