2013-11-28 2 views
0

아주 간단한 질문처럼 보이지만 나는 대답을 찾지 못하는 것 같습니다.레일에서 class object를 전역 적으로 사용할 수있게 만드는 방법은 무엇입니까?

Stripe을 응용 프로그램에 구현하려고합니다. Stripe은 키를 설정하는 방법이 api_key 인 루비 클래스입니다.

내 Rails 4 앱에서 모든 컨트롤러와 모델에서 Stripe에 액세스 할 수있는 키를 Stripe.api_key = mykey으로 정의해야합니까?

예를 들어 DB에서 계정을 만들 때 before_create 후크를 사용하여 Stripe 클래스를 사용하여 해당 지불 계좌를 만들 수 있습니다. API 키를 두 번 이상 설정해야하는 것은 맞지 않습니다.

나는 $ 스트라이프를 글로벌하게 만들려고했지만 그 사용에 대해 경고했다.

+0

나는 프로젝트의 이니셜 라이저에 간단하게 넣을 것이다. 필요한 기본 키가있는'Stripe.api_key ='클래스 메쏘드 만 보내면된다. –

답변

1

I을 필요가 일반적으로 이러한 클래스를 lib 폴더 내에 배치하십시오. 파일 이름이 snakecase의 클래스 이름과 같은지 확인해야합니다.

처음으로 Stripe constant를 사용하면 rail constant_missing 메서드가 실행됩니다. 자동로드 경로 중 하나에서 stripe.rb라는 파일을 검색합니다. 파일이 존재하지 않는 경우, 상실 누락 예외가 슬로우됩니다. 그렇지 않은 경우는,이 ​​파일 클래스로 선언 된 것을 돌려줍니다 (이름이 상수와 일치하는 경우).

서버 시작시이 클래스에 대해 일부 코드를 실행하려면 config/initializers 폴더 (클래스 자체가 아니라 코드를 호출하는 코드)에 넣어야합니다. 이 폴더의 모든 파일은 올바른 환경이로드 된 직후에 실행됩니다 (여기서 명명 규칙이 필요하지 않습니다).

1

난 당신이 추가를 수행하지 않고 클래스를 사용할 수 있습니다이 방법

stripe.rb라고 나는 귀하의 경우, 클래스마다 별도의 파일을 넣어하는 응용 프로그램 아래의 폴더 클래스를

관련 문제