我有以下型号:
class Parent
has_many :cars
accepts_nested_attributes_for :cars
end
class Car
belongs_to :parent
validates :parent, presence: true
end
控制器代码:
def create
parent = Parent.new
parent.attributes = parent_params
parent.save
end
def parent_params
params.require(:parent).permit(:name, cars_attributes: [:name])
end
当我尝试使用Parent
创建Cars
时,Cars
上的验证失败,因为尚未创建Parent
。如何通过嵌套属性创建验证?
答案 0 :(得分:3)
根据快速搜索,您可以使用:inverse_of
来克服这种情况。
在您的代码中:
class Parent
has_many :cars, inverse_of: :parent
accepts_nested_attributes_for :cars
end
class Car
belongs_to :parent
validates :parent, presence: true
end
(未经测试)
查看dem来源: