Rails嵌套属性 – 不创建父级

我有以下型号:

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 

当我尝试使用Cars创建Parent时,由于尚未创建Parent因此在Cars上validation失败。 当通过嵌套属性创建validation时,如何使其通过validation?

基于快速搜索,您可以使用: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来源:

  1. validation父对象的存在 (滚动到该部分)。
  2. 关于github的问题
  3. 一些post我没有费心阅读,但在上面的问题上被引用

GL&HF。