是否有一种方法可以保存对象,但如果对象给定字段的validation_uniqueness_of失败,则返回对象?例如,我有以下几点:验证失败后返回对象
class User
has_many :words
...
end
class Word
belongs_to :user
validates_uniqueness_of :title
...
end
而且我有,我想要么返回Word对象,如果用户已经保存这个词,或返回新保存的Word对象的情况。我发现自己检查是否存在通过我自己的搜索词的对象,然后进行保存,如果没有:
existing_word = find_by_word_and_user_id(word, user)
!existing_word.nil? ? existing_word : user.words.create({:word => word})
但我觉得,如果用户没有保存的话,铁轨是要进行冗余在我的检查后搜索标题唯一性验证,我想知道是否可以保存并返回rails为验证找到的已有对象。