我目前正在使用嵌套表单/ fields_for,我想知道是否有一种简单的方法可以跳过嵌套属性的验证?
我可以在某个地方挤压一个object.nested_object.save(:validate => false)吗?
答案 0 :(得分:4)
你只需要分两部分进行保存。关于父节约的第一次保存和关于嵌套
的第二部分如果您在此嵌套字段上使用accepts_nested_attributes_for
def create
nested_params = params[:object].delete(:nested_attributes)
if object = Object.create(params[:object]) &&
object.update_attributes(nested_params, :validate => false)
redirect_to object_url(object)
else
render :new
end
end
使用Cojones的评论进行更新:
如果您不使用此选项,则需要直接指定nested_attribute,如注释上的说明:
def create
nested_params = params[:object].delete(:nested_attributes)
if object = Object.create(params[:object]) &&
object.nested_object.update_attributes(nested_params, :validate => false)
redirect_to object_url(object)
else
render :new
end
end
请参阅评论以获取更多信息。