2017-12-01 1 views
1

보석을 만들었습니다. 당신은 여기에 전체 소스 코드를 볼 수 있습니다 https://github.com/agilie/instagram_api_gem (있는 경우가 아닌 광고) 나는보석을 수동으로 요청해야합니다.

# Gemfile 
gem 'instagram_api_client' 

그것을 필요로 수동 전까지 작동하지 않습니다 레일 프로젝트에 사용하지만

, 초기화 자의 어딘가에

require 'instagram_api' 

왜 이런 일이 발생합니까? 다른 레일과 마찬가지로 수동으로 작업해야합니다.

+0

이 보석이 어디에 있습니까? 루비 젬에 업로드 했습니까? 보석을 추가 한 후에'bundle'을 다시 실행 했습니까? – mudasobwa

+0

예, rubygems (https://rubygems.org/gems/instagram_api_client)에 있습니다. 나는 루비 젬과 저장소에서 직접 두 가지 방법을 시도했다. 결과는 같습니다. 물론 추가 한 후에 번들했습니다. –

+2

RubyGem의 명명 규칙을 따라야합니다. [자신 만의 보석 만들기] (http://guides.rubygems.org/make-your-own-gem/) 가이드 : _ "패키지의 코드는 ** lib ** 디렉토리에 있습니다. ** 하나 ** ** 당신의 보석과 같은 ** ** 루비 파일이로드되면 [...] "_ – Stefan

답변

3

레일 자동 로딩 규칙을 따르지 않습니다. lib 폴더의 최상위 레벨의 콘텐츠

require 'instagram_api' 

있는 파일 instagram_api_client.rb을 만듭니다. 그 트릭을해야합니다.

보석의 경우, 자동으로로드 할 파일의 이름은 보석의 이름과 정확하게 일치해야합니다. @TomLord에 의해 제안


또는, 하나는 단순히 Gemfile 자체

gem 'instagram_api_client', require: 'instagram_api' 

을 지정할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 시도해 보겠습니다. –

+0

최상위 수준의'lib' 폴더가 필요하지 않습니다. 'require : "..."'*를 Gemfile에 지정할 수있다. –

+0

@TomLord 덕분에, 나는 그것을 알지 못했다. – mudasobwa

관련 문제