2014-11-02 3 views
0

필자는 매개 변수에 대해 몇 가지 복잡한 유효성 검사를 수행하는 많은 화이트리스트 기능을 제공합니다.모듈, 헬퍼 또는 다른 것?

  1. 고객의 ID

    예를 들면 : 당신이 알고 있어야하는 경우, 나도 동의를 여러 컨트롤러가 customer=cus_123412341234

  2. 고객 해시

    예컨대 customer[first_name]=Floating&customer[last_name]=Rock&...

이 (a customer ID 또는 해시를 사용 charges 엔드 포인트에서 생성 될 수있다 예를 들어, 전하) 할 다수의 컨트롤러가있을 기억.

는 지금은 어디 나는이 방법을 배치해야합니다 알고 싶어 (예를 들어 customer_hash_params(), customer_string_params() ..)?

내가해야 :

  • 뭔가 다른 도우미로 helpers/ 폴더에 모듈로 lib/ 폴더에

    1. 장소를
    2. 장소를 ..

    에 하시겠습니까 모범 사례가 뭔지 알아?

  • 답변

    2

    요약하면 app/helpers에 배치 된 도우미는 컨트롤러와보기 모두에 대한 일부 논리를 제공 할 수 있습니다. 그것은보기를 위해 자동로드되며 컨트롤러 내에 포함시킬 필요가 있습니다. lib 폴더에있는 모듈 또는 클래스는 일반적으로 일부 컨트롤러 또는 모델 논리를 확장합니다. application.rb

    보기 내에서 필요하지 않으므로 유효성 검증 로직이 lib 디렉토리에 적합하기 때문에 환경에 자동로드되지 않습니다. 이 유효성 검사는 일종의 사전 유효성 검사이며 모델에 이러한 유효성이 검사 된 필드가 모두 정의되어 있다고 가정합니다. 그렇지 않으면 모델에 대한 사용자 정의 유효성 검사기를 작성하는 것이 좋습니다.

    1

    레일에있는 폴더는 컨트롤러 또는 모델을 지원하는 데 긴 방법이있는 경우 항상 사용됩니다. 그래서 우리는 다양한 컨트롤러에서 이러한 메서드를 호출 할 수 있습니다.

    이것이 필요한 경우 lib 폴더로 이동하여 수업을 만드십시오. 다른 컨트롤러와 모델에서 클래스 메서드를 호출하십시오.

    관련 문제