2010-09-07 10 views
9

Khi tôi cố gắng chạy thử nghiệm từ TextMate trong Rails3 tôi nhận được một lỗi mà tôi theo dõi trở lại boot.rb. Khi tôi cố gắng chạy boot.rb qua textmate tôi nhận được lỗi này:Textmate Rails3 không có tập tin như vậy để tải - bundler

LoadError: no such file to load — bundler 

method gem_original_require in custom_require.rb at line 31 
method require in custom_require.rb at line 31 
at top level in boot.rb at line 4 

Điều này thậm chí còn trong một dự án đường ray hoàn toàn mới. Tôi có thể chạy các tập tin boot.rb tương tự từ thiết bị đầu cuối gọi

ruby <path_to>/boot.rb 

tôi có thể xác minh rằng biến TM_RUBY của tôi cũng giống như khi tôi gọi which ruby từ dòng lệnh. Bạn có bất kỳ đầu mối nào tại sao tôi có thể gặp phải lỗi này không?

+0

(Bình luận thêm rằng chúng tôi đã thành lập mà có, đá quý bundler được cài đặt.) – pjmorse

+1

có thể là biến môi trường GEM_PATH không được thiết lập ..? – mikeycgto

+0

Âm thanh như một cái gì đó bị định cấu hình sai trong các thử nghiệm của bạn và không có đủ backtrace, tôi không nghĩ rằng tôi có thể giúp thêm. Ngoài ra, hãy thử cập nhật các gói trong Textmate vì chúng có thể có lỗi. Tôi không làm việc được! : -/ – Gav

Trả lời

13

Tôi đã gặp phải vấn đề tương tự với TextMate và RVM. Những gì bạn cần làm:

  1. Tạo một kịch bản wrapper cho gemset bạn muốn sử dụng, cách sử dụng lệnh RVM này:

    rvm wrapper [email protected] textmate 
    

    này sẽ thêm một bí danh mới để RVM bạn cài đặt gọi textmate_ruby. Như bạn có thể nói với giả định này, bạn đang sử dụng Ruby Enterprise (ree) và gemset gọi là rails3, nhưng bất kỳ chuỗi RVM nào cũng sẽ hoạt động ở đây.

  2. Mở cửa sổ tùy chọn của TextMate, đi tới Nâng cao> Biến Shell. Bạn cần phải tạo (hoặc cập nhật) biến TM_RUBY vỏ như sau:

    /path/to/your/.rvm/bin/textmate_ruby 
    

    Nếu RVM của bạn được cài đặt trong thư mục người dùng của bạn (như tôi), mà sẽ là:

    /Users/[YOUR USER NAME HERE]/.rvm/bin/textmate_ruby 
    
  3. (Tùy chọn) Bạn cũng có thể cần/muốn đặt biến vỏ RUBYOPT, để hướng dẫn Ruby tải rubygems. Điều này có thể cần thiết để làm cho các gói nhất định (như RSpec) hoạt động. Chỉ cần đặt giá trị thành rubygems.

Đây sẽ là tất cả những gì bạn cần.

+0

Điều đó có hiệu quả đối với tôi - cảm ơn! – Thilo

0

Điều này có thể xảy ra khi bạn đang sử dụng RVM (trình quản lý phiên bản ruby) và bạn cùng lớp không biết về điều đó.

Công việc kiểm tra cào có từ dòng lệnh không?

+0

kiểm tra rake không hoạt động từ dòng lệnh và tôi đang sử dụng RVM. – Schneems

1

Để có được TextMate để sử dụng cùng một thông dịch viên RVM Ruby như các dòng lệnh, tôi đã làm như sau:

  • Trên dòng lệnh, gõ which ruby - đối với tôi, đây là /Users/mgp/.rvm/gems/ruby-1.9.2-p180/bin/ruby
  • Trong sở thích TextMate , tôi đã thêm /Users/mgp/.rvm/gems/ruby-1.9.2-p180/bin vào mặt trước của biến số PATH vỏ của tôi.
  • Trong sở thích TextMate, tôi đã thêm một biến vỏ mới GEM_PATH với giá trị /Users/mgp/.rvm/gems/ruby-1.9.2-p180:/Users/mgp/.rvm/gems/[email protected]
3

tôi thấy nó là đơn giản nhất để sử dụng cách tiếp cận rvm-auto-ruby.

Xác định vị trí rvm-auto-ruby nhị phân sử dụng which:

$ which rvm-auto-ruby 

Kết quả là đường dẫn đến nhị phân tự động tải:

/Users/yourusername/.rvm/bin/rvm-auto-ruby 

Thêm con đường này để TextMate dưới: Preferences -> Advanced - > Shell Variables

Nó hoạt động như một bí danh trỏ đến ver hoạt động của bạn sion của Ruby.

Ảnh chụp màn hình: http://cl.ly/23Yl

Những hướng dẫn có sẵn trên trang web RVM: https://rvm.io/integration/textmate/

+0

Bạn đang sử dụng Rails 4.2 và Ruby 2.2? Nó có hoạt động không? Tôi không thể làm cho nó làm việc, khi tôi thực hiện một gói textmate, và tải boot.rb: crash khi thực thi 'require 'bundler/setup'' –