2012-07-16 2 views
5

나는 루비에 레일 응용 프로그램이 있어야 보석이 필요합니다. Jeweler는 기본 루비 젬을 만드는 데 도움을줍니다. 그러나, 어떻게 레일 애플 리케이션을 보석으로 패키징합니까? 나는 보석으로 내 레일 애플 리케이션을 필요로 주요 애플 리케이션이 있습니다. 메인 레일 앱이 관리 앱으로 사용되어 작은 앱을 제어하고 보석/엔진으로 실행되도록하기 때문에 앱을 통합 할 수 없습니다.레일 앱을 보석으로 변환하는 방법은 무엇입니까?

+2

전체 애플리케이션을 젬으로 패키지화하려는 이유를 설명 할 수 있습니까? 보석은 일반적으로 앱에 추가 할 수있는 플러그인이나 라이브러리가 아닙니까? – jstim

+1

또한 레일 3에서 장착 가능한 엔진을 살펴보십시오 ..... –

답변

4

Rails 3.0 이후 모든 Rails 앱이 엔진입니다. 응용 프로그램을 보석으로 포장하려면 다음을 수행해야합니다.

  1. 번들러 또는 보석상 또는 다른 것으로 새 보석을 만드십시오.
  2. 응용 프로그램 코드를 gem의 lib/디렉토리에 삽입하십시오.
  3. 앱의 모든 클래스는 MyGem 모듈에 있어야하므로 클래스 이름 앞에 다음과 같이 MyGem을 추가하십시오. Article => MyGem :: Article. 모든 컨트롤러, 모델 등은 GemName 모듈을 통해 네임 스페이스로 지정해야합니다.
  4. 귀하의 파일 LIB/my_gem.rb 다음 코드가 포함되어야합니다

    module MyGem 
        class Engine < Rails::Engine; end 
    end 
    

UPD

를 아니면 마운트 엔진을 사용할 경우 더 나은 :

$ rails plugin new MyGem 

을 테스트 및 gemspec 용 더미 응용 프로그램과 함께 탑재 가능한 엔진을 생성합니다.

+0

안녕하세요 @alexcoco,이 과정을 되돌릴 방법이 있습니까? 내 새로운 질문보기 : http://stackoverflow.com/questions/31496596/how-to-convert-gem-to-standalone-rails-app – thesowismine

관련 문제