2012-07-16 43 views
5

Tôi có một ứng dụng ruby ​​trên đường ray cần phải có đá quý. Jeweler, giúp tạo ra rubygems cơ bản. Tuy nhiên, làm cách nào để đóng gói ứng dụng đường ray làm đá quý? Tôi có một ứng dụng chính yêu cầu ứng dụng đường ray của tôi làm đá quý. Tôi không thể tích hợp chúng như là ứng dụng đường ray chính sẽ được sử dụng như một ứng dụng quản lý để kiểm soát các ứng dụng nhỏ hơn, chạy trong nó như đá quý/động cơ.Cách chuyển đổi ứng dụng đường ray thành đá quý?

+2

Bạn có thể mô tả lý do bạn muốn đóng gói đơn đăng ký đầy đủ dưới dạng đá quý không? Không phải đá quý thường là plugin hoặc thư viện mà bạn có thể thêm vào ứng dụng? – jstim

+1

cũng có thể xem xét các động cơ có thể gắn kết từ ray 3 ..... –

Trả lời

4

Vì Rails 3.0 bất kỳ ứng dụng Rails nào là một Engine. Để bọc ứng dụng của bạn vào đá quý, bạn nên:

  1. Tạo đá quý mới bằng bundler hoặc jeweler hoặc thứ khác.
  2. Chèn mã ứng dụng của bạn vào thư mục lib/gem của đá quý của bạn.
  3. Tất cả các lớp trong ứng dụng của bạn phải nằm trong mô-đun MyGem, vì vậy hãy thêm MyGem trước tên lớp của bạn, như: Article => MyGem :: Article. Tất cả các bộ điều khiển, mô hình của bạn, vv nên được đặt tên theo tên của GemName.
  4. lib tập tin của bạn/my_gem.rb nên chứa mã tiếp theo:

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

UPD

Hoặc tốt hơn nếu bạn sẽ sử dụng động cơ mountable:

$ rails plugin new MyGem 

Nó tạo ra động cơ gắn kết với ứng dụng giả cho các bài kiểm tra và gemspec.

+0

hey @alexcoco, có cách nào để * đảo ngược * quá trình này không? Xem câu hỏi mới của tôi: http://stackoverflow.com/questions/31496596/how-to-convert-gem-to-standalone-rails-app – thesowismine

Các vấn đề liên quan