2012-10-21 21 views
12

tôi bước vào một ứng dụng ruby ​​hiện có, và loại:Rails Server Error: phiên bản Ruby là 1.8.7, nhưng Gemfile bạn định 1.9.3

$ ray s

muốn bắt đầu ray máy chủ ở đây. nhưng nó nói:

phiên bản Ruby của bạn là 1.8.7, nhưng Gemfile bạn định 1.9.3

Thực ra, tôi đã có một 1.8.7, nhưng tôi đã xóa nó. Và nếu tôi làm:

$ ruby ​​-v

nó nói: ruby ​​1.9.3p286 (2012/10/12 sửa đổi 37.165) [x86_64-darwin11.4.2]

Vì vậy, tôi không biết làm thế nào tôi có thể sửa chữa nó. Bạn có thể giúp tôi không?

Trả lời

5

thử sử dụng bundler

bundle exec rails s 
+0

Cảm ơn! Tôi đã có 2 ngày tìm kiếm câu trả lời và câu trả lời của bạn là chính xác! – MrMins

1

Vui lòng thử này:

1. Open your gemfile 
2. Specify rails version 
3. Run bundle update 
4. Run rails server - rails s 
12

Nếu bạn đang sử dụng rvm, chạy này:

$ rvm use 1.9.3 
3

tôi phát hiện ra lý do tôi đã nhận được này lỗi là tôi đã bắn phá một chương trình dòng lệnh Heroku bên trong các tệp cấu hình của tôi và Herok u Toolbelt đi kèm với phiên bản riêng của Ruby.

Hai giải pháp cho vấn đề đó là không được đưa ra Heroku hoặc sử dụng khối Bundler.with_clean_env thay vì backticks để bao gồm lệnh heroku.

5

Tôi có vấn đề tương tự:

$ bundle install 
Your Ruby version is 2.1.0, but your Gemfile specified 1.9.3 

nhưng:

$ ruby -v 
1.9.3-p484 
$ which ruby 
/home/malo/.rvm/rubies/ruby-1.9.3-p484/bin/ruby 

tôi đã tìm thấy năm câu trả lời: 1, 2, 3, 4, 5. Ngoài ra, nó là open issue trên .Tuy nhiên, tôi đã giải quyết vấn đề như sau:

  1. Got đường dẫn đến tôi:

    $ which bundle 
    /home/malo/.rvm/gems/[email protected]/bin/bundle 
    
  2. Khai trương nó để chỉnh sửa (hoặc chỉ cần nó), và thấy rằng nó có liên kết không hợp lệ ruby trong dòng đầu tiên:

    $ cat $(which bundler)|head -n 1 
    #!/home/malo/.rvm/rubies/ruby-2.1.0/bin/ruby 
    
  3. Sau đó, tôi nhận được đường dẫn đến ruby ​​có giá trị hiện tại, và chỉ cần thay thế mà không hợp lệ với nó:

    $ which ruby 
    /home/malo/.rvm/rubies/ruby-1.9.3-p484/bin/ruby 
    

    Tất nhiên bạn cũng có thể thử thay thế nó bằng các hình thức phổ biến:

    #!/usr/bin/env ruby 
    

    này nên lấy phiên bản ruby ​​đang được sử dụng.

+2

Tất cả các câu trả lời khác mà tôi có thể tìm thấy là vô ích, nhưng điều này đã được phát hiện. Tôi đã khắc phục sự cố và tôi đã sao lưu và chạy. Anh cũng yêu em. –

+0

là đường dẫn trong trình bao của bạn dòng này: xuất RBENV_ROOT = "/ Users/usernamehere/.rbenv" – gpr

0

Hiện tại, điều này xảy ra với tôi. Tuy nhiên tôi thường không thích chuyển đổi các phiên bản ruby ​​ở đây và ở đó. Vì vậy, thay vì những gì tôi làm là tôi chỉ cần đi đến Gemfile và chuyển đổi phiên bản ruby ​​sang phiên bản tôi đang sử dụng. Việc này cho phép tôi kích hoạt máy chủ và tiếp tục làm việc.

để ví dụ, ngay bây giờ cho các ứng dụng tôi đang làm việc trên, Gemfile của tôi là tại

ruby ENV["CUSTOM_RUBY_VERSION"] || "2.1.6" 

và tôi sẽ chỉ thay đổi nó để

ruby ENV["CUSTOM_RUBY_VERSION"] || "1.9.3" 
Các vấn đề liên quan