3
모델의 인스턴스를 유효하지 않게하려는 매우 특정한 상황이 있습니다. 이 같은rails : 유효하지 않은 모델 강제
뭔가 :
user = User.new
user.valid? #true
user.make_not_valid!
user.valid? #false
그것을 달성하기 위해 어떤 방법?
감사합니다.
모델의 인스턴스를 유효하지 않게하려는 매우 특정한 상황이 있습니다. 이 같은rails : 유효하지 않은 모델 강제
뭔가 :
user = User.new
user.valid? #true
user.make_not_valid!
user.valid? #false
그것을 달성하기 위해 어떤 방법?
감사합니다.
당신은 할 수 있습니다 :
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
내가 테스트를 위해 유용하다고 또 다른 변형 :
invalid_instance = MyModel.new
class << invalid_instance
validate{ errors.add_to_base 'invalid' }
end
브릴리언트을! 이 사람에게 맥주를 사주세요! – bymannan
이것은 좋지만 인스턴스가 아닌 전체 클래스를 무효화합니다. @broisatse가 그의 코드보다 << 클래스를 의미하지 않는다면. – jforberg
@jforberg -'@ not_valid'는 인스턴스 변수이므로 주어진 인스턴스를 무효로 만듭니다. – BroiSatse