跳过验证相关的对象 - 导轨的ActiveRecord [英] Skip validation for related objects - rails activerecord

查看:212
本文介绍了跳过验证相关的对象 - 导轨的ActiveRecord的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 类作者
  的has_many:书籍

  验证:电子邮件:presence =>真正
结束

类图书
  belongs_to的:作者

  验证:标题:presence =>真正
结束
 

跳过验证很简单:

  A = Author.new
a.save(:验证=>假)
 

不过,我需要跳过笔者验证没有跳过书的验证创建一本书的时候,像这样的:

  B = Book.new
b.tit​​le =一书

b.author = Author.last
b.save
 

解决方案

由于笔者验证显得不是那么重要,同时节省你的模型,你可以写这样的书型号:

 类图书
  belongs_to的:作者:验证=>假

  验证:标题:presence =>真正
结束
 

这样,作者验证将被跳过,同时节省。

class Author
  has_many :books

  validates :email, :presence => true
end

class Book
  belongs_to :author

  validates :title, :presence => true
end

Skipping validations is easy:

a = Author.new
a.save(:validate => false)

However, I need skip author validations when creating a book without skipping books validations, like this:

b = Book.new
b.title = "A Book"

b.author = Author.last
b.save

解决方案

Since author validation seems not so important while saving your model, you could write your Book model like this:

class Book
  belongs_to :author, :validate => false

  validates :title, :presence => true
end

This way, authors validations will be skipped while saving.

这篇关于跳过验证相关的对象 - 导轨的ActiveRecord的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆