조건부 유효성 검사를 설정하려고하는데 패스 메서드가 true
또는 false
인 경우 개체가 저장됩니다.레일 조건부 유효성 검사가 올바로 작동하지 않습니다.
test
반환 false
, 나는 개체를 저장하지 않는 경우
class Foo < ActiveRecord::Base
belongs_to :order
belongs_to :user
validates :order, presence: true
validates :user, presence: true, if: :test
private
def test
false
end
end
컨트롤러 :
귀하의 케이스를 들어def create
foo = Foo.new(foo_params)
if foo.save
render json: delivery, status: 201
else
render json: { errors: foo }, status: 422
end
end
테스트가 false 인 경우 사용자 유효성 검사 만 건너 뜁니다. –
아, 알겠습니다. 유효성 검사를 잘못 사용하고 있습니다. 'test'가 false를 반환하면 어떻게 객체를 저장하지 않을 수 있습니까? – Jay
'if :'대신'unless : : test'를 사용할 수 있습니다. – user2936314