문제

Ruby on Rails에는 각 모델 엔티티에 "validate_on_무엇"Hook Method는 엔티티가 실제로 데이터베이스에 지속되기 전에 호출 될 것입니다. Google App Engine에서 유사한 기능을 원합니다. 선언에서 인수를 전달하여 개별 속성에 대한 검증을 수행 할 수 있음을 알고 있습니다. 그보다 더 많은 검증을 원한다면 모델 클래스 선언 내에 내가 할 수있는 곳이 있습니까?

또한 동일한 라인을 따라 실체가 실제로 데이터베이스에 지속되기 전에 수정이 필요합니다. 엔티티가 실제로 데이터베이스에 기록되기 직전에 엔티티를 수정 (변환)해야 할 수도 있습니다. 엔티티 클래스 선언에 내가 그렇게 할 수있는 장소가 있습니까?

이 변환/검증을 수업 외부에 넣을 수 있다는 것을 알고 있습니다. bu 이것은 거의 좋은 oo 디자인처럼 보이지 않습니다. 이런 종류의 요구에 대한 모델에서 자동으로 호출되는 후크 메소드가 있어야합니다.

제 질문은 엔터티가 지속되기 전에 엔티티의 검증과 변환을 처리하는 가장 적절한 방법은 무엇입니까?

도움이 되었습니까?

해결책

가장 좋은 답변은 어떤 종류의 변환이 필요한지에 따라 다릅니다. 모델에 대한 일반화 된 사전/사후 퍼팅 방법은 없지만 몇 가지 다른 옵션이 있습니다.

  • 언급했듯이 유효성 검사 기능을 속성 클래스 생성자에게 전달할 수 있습니다.
  • 프로그래밍 방식으로 값을 생성하는 사용자 정의 속성 클래스를 사용할 수 있습니다. 이 하나.
  • 엔티티를 사용하여 가장 낮은 수준으로 저장할 때 엔티티를 수정할 수 있습니다. API 호출 후크.

다른 팁

Raw App Engine API 위에 어떤 종류의 웹 프레임 워크를 사용하고 있습니까? Rails는 매우 높은 수준의 프레임 워크입니다. Django 또는 다른 웹 프레임 워크를 살펴 보셨습니까? 원시 Appengine 엔티티보다 레일에 더 가깝다는 것을 알 수 있습니다.

또는 당신이 무언가를 원한다면 낮추다 레벨,이 기사를 살펴보십시오후크

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top