rails:强制模型无效

时间:2014-05-27 10:20:26

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2 ruby-on-rails-3.1

我有一个非常具体的情况,我想强制模型的实例无效。

这样的事情:

user = User.new
user.valid? #true
user.make_not_valid!
user.valid? #false

有任何方法可以实现这一目标吗?

谢谢!

2 个答案:

答案 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