我有一个非常具体的情况,我想强制模型的实例无效。
这样的事情:
user = User.new
user.valid? #true
user.make_not_valid!
user.valid? #false
有任何方法可以实现这一目标吗?
谢谢!
答案 0 :(得分:7)
你可以这样做:
validate :forced_to_be_invalid
def make_not_valid!
@not_valid = true
end
private
def forced_to_be_invalid
errors.add(:base, 'has been forced to be invalid') if @not_valid
end
答案 1 :(得分:1)
我发现另一种对测试有用的变体:
invalid_instance = MyModel.new
class << invalid_instance
validate{ errors.add_to_base 'invalid' }
end