我想检查新记录的某些属性,如果某些条件为真,则阻止创建对象:
before_create :check_if_exists
def check_if_exists
if condition
#logic for not creating the object here
end
end
我也愿意接受更好的解决方案!
我需要这样做以防止偶尔重复的API调用。
由于
答案 0 :(得分:8)
before_create :check_if_exists
def check_if_exists
errors[:base] << "Add your validation message here"
return false if condition_fails
end
更好的方法:
您应该考虑在此处使用验证,而不是选择回调。如果条件失败,验证肯定会阻止对象创建。希望能帮助到你。
validate :save_object?
private:
def save_object?
unless condition_satisifed
errors[:attribute] << "Your validation message here"
return false
end
end
答案 1 :(得分:5)