我在Rails上使用Mongoid,并在模型validates_uniqueness_of :quote
上添加了Quote
。
但是只要有重复的记录,应用程序就会崩溃,并显示以下消息:
消息:报价验证失败。摘要:以下错误 被发现:报价已被解决:尝试保持 包含有效数据的文档或删除验证。
这是我的模特
class Quote
include Mongoid::Document
field :quote, type: String
field :author, type: String
field :author_about, type: String
field :tags, type: String
validates_uniqueness_of :quote
end
这就是我想要做的:
if @quotedb.save!
return true
else
return false
end
它应该保存(如果唯一),如果不唯一则忽略,但绝不崩溃。
答案 0 :(得分:1)
您的应用实际上并未崩溃,只是引发了异常。
调用save!
方法时,!
表示它将触发validation,并且当验证失败时,它将引发异常。
一种更好的方法是使用rescue
处理异常,但是如果您不关心验证结果,请改用save
。