Tôi có ứng dụng Rails 3 mà tôi đang chuyển thành công cụ Rails/gem. Công cụ này có một số phụ thuộc đá quý mà tôi đã đặt bên trong tệp .gemspec của nó.Làm cách nào để tạo phụ thuộc gemspec tự động tải trong ứng dụng Rails 3, sử dụng Gemfile
Tôi đã tạo ứng dụng Rails 3 mới cho phụ huynh và tôi muốn thêm gem gem của mình vào Gemfile và có phụ thuộc của gem tự động được 'tải', nhưng điều này không hiệu quả đối với tôi! bundle install
cài đặt phụ thuộc vào đá quý, nhưng khi tôi khởi động máy chủ, ứng dụng bị treo vì chúng không được tải.
Ví dụ, gemspec động cơ của tôi chứa những dòng này:
s.add_runtime_dependency(%q<rails>, ["= 3.0.7"])
s.add_runtime_dependency(%q<acts_as_commentable>, [">= 3.0.1"])
s.add_runtime_dependency(%q<haml>, [">= 3.1.1"])
.. và Rails mẹ 3 ứng dụng có những dòng này trong Gemfile của nó:
source 'http://rubygems.org'
gem 'my_engine', :path => "~/src/gems/my_engine"
Nhưng tôi nhận được lỗi sau:
undefined local variable or method `acts_as_commentable'
from /home/user/src/gems/my_engine/app/models/account.rb:66:in `<class:Account>'
Nhưng nếu tôi thêm gem 'acts_as_commentable', '>= 3.0.1'
vào Gemfile của phụ huynh Rails 3 ứng dụng, sau đó đá quý được tải và lỗi biến mất.
Tôi đang sử dụng Rails 3.0.8.
Có ai có bất kỳ đề xuất nào không? Tôi có cần phải thay đổi điều gì đó về cách động cơ của tôi đang tải không?
Cảm ơn bạn đã xác nhận rằng đây là hành vi mong đợi. Có một vấn đề bị đóng (bị từ chối) đối với người đóng gói với ý tưởng 'đệ quy Gemfiles', có vẻ như nó có thể hữu ích: https://github.com/carlhuda/bundler/issues/49 – ndbroadbent
Đối với tôi, tôi cần phải yêu cầu /lib/my_engine.rb. Ví dụ: https://github.com/krisleech/qwerty/commit/c1e82cef27013afc6a540412e101cc2b6aeb4898 – Kris