2011-10-04 25 views
5

Tôi đã cài đặt rbenv và ruby-build. Sau đó, tôi đã cài đặt ruby ​​1.9.2p290. Mọi thứ đều đẹp.Làm cách nào để buộc Rails sử dụng phiên bản Ruby (được quản lý với rbenv) mà tôi muốn?

$ cd my_rails_app 
$ ruby -v 
1.9.2p290 
$ rails server 
... 
[2011-10-04 13:51:01] INFO WEBrick 1.3.1 
[2011-10-04 13:51:01] INFO ruby 1.8.7 (2010-01-10) [universal-darwin11.0] 
... 

Nhưng khi tôi chạy ứng dụng, nó vẫn đang sử dụng ruby ​​1.8.7. (các phương thức tồn tại trong 1,9 thất bại). Tất cả mọi thứ trong rails/console hành vi như 1.8, và trong IRB hành vi như 1.9.

Tôi làm cách nào để buộc ứng dụng của mình sử dụng 1,9?

Tôi quen thuộc với RVM, tôi đặc biệt hỏi về rbenv.

+0

"Khi nào tôi chạy ứng dụng của tôi" nghĩa là gì? Bạn đang sử dụng máy chủ ứng dụng nào? – jdl

+0

Tôi đang chạy nó cục bộ, sử dụng WEBrick. Tôi cũng gặp vấn đề tương tự khi sử dụng giao diện điều khiển/đường ray. Tôi đã cập nhật câu trả lời của mình để hiển thị đầu ra máy chủ cụ thể tham chiếu 1.8.7 –

+0

Các tập lệnh đó tham chiếu đến '/ usr/bin/env'. '/ Usr/bin/env ruby ​​-v' là gì? – jdl

Trả lời

5

Bạn đã cài đặt Rails với bundle install chưa? Nếu vậy, lưu ý rằng Bundler không thêm các tập tin thực thi vào thư mục thực thi của Ruby.

Thay vào đó, sử dụng binstubs hoặc bundle exec (documentation):

bundle exec rails server 

Trong trường hợp bạn không cài đặt Rails với Bundler, có lẽ bạn nên làm một rbenv rehash để cập nhật các miếng chêm thực thi. Sau đó rails server sẽ hoạt động tốt. Tuy nhiên, điều này sẽ chỉ hoạt động nếu Rails đã được cài đặt trực tiếp với Rubygems, vì vậy nó là một cách không đáng tin cậy để gọi Rails.

+0

WebBick chỉ được bắt đầu với 1.8.7! Điều này làm việc cho tôi. Cảm ơn. – Sawant

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