2012-01-09 29 views
12

Tôi đã thử mẹo này: https://github.com/thoughtbot/laptop/pull/14#issuecomment-3192270.Có thể chạy ứng dụng Rails của tôi trên Heroku với Ruby 1.9.3 không? Nếu vậy, làm thế nào?

On triển khai tôi thấy

-----> Using RUBY_VERSION: ruby-1.9.3-p0 

Nhưng các bản ghi của tôi hiển thị các biến môi trường không được tôn trọng

INFO ruby 1.9.2 (2011-07-09) [x86_64-linux] 

Hacky/giải pháp thử nghiệm được chấp nhận!

Chỉnh sửa: Tôi đang ở trên ngăn tuyết tùng.

+0

Bạn đã thử chuyển sang ngăn xếp tuyết tùng chưa? – sethvargo

+0

Yup, đã sẵn sàng, câu hỏi cập nhật :) –

+0

Tôi hiện có một vé hỗ trợ mở liên quan đến kịch bản chính xác này - RUBY_VERSION đầu ra 1.9.2 nhưng tôi yêu cầu rõ ràng 1.9.3. Sẽ đăng lại khi tôi nhận được phản hồi. –

Trả lời

18

Đây là bản cập nhật cho mọi người tham khảo câu hỏi này ...

chạy đầu tiên:

gem install bundler --pre 

sau đó thêm ruby ​​'1.9.3' để Gemfile của bạn như vậy.

source 'http://rubygems.org' 

ruby '1.9.3' 
gem 'rails', '3.2.3' 

Phiên bản đầy đủ từ Heroku với các chi tiết là tại http://blog.heroku.com/archives/2012/5/9/multiple_ruby_version_support_on_heroku/

+0

Tôi đã cố gắng này sau khi ứng dụng của tôi đã được thiết lập với đường ray 1.9.1. Bây giờ tôi nhận được một lỗi tại thời gian chạy mà tham khảo '/ app/vendor/bundle/ruby ​​/ 1.9.1' thay vì' 1.9.3' là phiên bản tôi đã cập nhật nó. Suy nghĩ? Oh, và khi tôi kiểm tra phiên bản với 'heroku run 'ruby -v" 'nó trả về giá trị dự kiến' ruby ​​1.9.3p429 (phiên bản 2013-05-15 40747) [x86_64-linux] ' – alockwood05

+0

Bạn có thể thêm một ý chính với đầy đủ không lỗi? – Glenn

+0

Cảm ơn bạn đã quay trở lại, tôi thực sự phát hiện thấy lỗi của tôi không liên quan đến phiên bản đường ray. Nó xuất hiện mà tôi đang infact chạy 1.9.3 mặc dù đá quý kèm theo của tôi là trong thư mục '/ app/vendor/bundle/ruby ​​/ 1.9.1' trên heroku. Vấn đề của tôi dường như là do các đá quý ActiveAdmin (devise) và 'sass-rails' và' haml-rails' nằm trong nhóm ': assets'. Tôi lấy chúng ra và có vẻ như tôi đang làm việc. Vì vậy, Infact Tôi không có vấn đề với chạy '1.9.3', chỉ có những viên đá quý được lưu trữ trong thư mục có nhãn' 1.9.1' cũ. – alockwood05

0

Theo định nghĩa ngăn xếp Heroku Cedar here Hiện tại, Cedar chỉ hỗ trợ MRI 1.9.2. Bạn đã thử liên lạc với Heroku chưa? Chúng thường khá nhạy.

Chỉnh sửa: có thể 'đánh lừa' nền tảng đôi khi chạy một số tệp nhị phân như running Haskell trên Heroku vì vậy nếu bạn cảm thấy thực sự tận tâm, bạn có thể gói thứ gì đó. Tôi tưởng tượng điều này không phải là quá dễ dàng với MRI mặc dù.

8

Phải, vì vậy, Ruby 1.9.3 chắc chắn có thể. Như bạn đã nói, các giải pháp hacky/testing đã được chấp nhận - đây chắc chắn là một trong số chúng.

Thực sự rất đơn giản;

  1. Bật tính năng user_env_compile của user_env_compile cho ứng dụng của bạn.

  2. Đặt một biến Heroku config để RUBY_VERSION để ruby-1.9.3-p0 (heroku config:add RUBY_VERSION=ruby-1.9.3-p0)

  3. đảm bảo rằng các Heroku PATH biến cấu hình có bin ở phía trước (heroku config:add PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin)

Khi bạn triển khai tiếp theo, bạn sẽ thấy ứng dụng của mình bằng cách sử dụng 1.9.3 - đầu ra triển khai cũng sẽ hiển thị điều này;

-> Heroku receiving push 
-----> Ruby/Rails app detected 
-----> Using RUBY_VERSION: ruby-1.9.3-p0 
-----> Installing dependencies using Bundler version 1.1.rc.7 
Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment 
+0

BướC# 3 chỉ là ma thuật tôi cần, cảm ơn! –

+0

vâng - đó là những gì đã khiến tôi hiểu - hỗ trợ của Heroku đã được giải cứu! :) –

+0

không nên PATH chứa 1.9.3 thay vì 1.9.1? –

1

tôi đã có thể để có được một ứng dụng Rails 3.2 chạy trên Ruby 1.9.3-p0 trên Heroku tuyết tùng ngày nay

Tôi làm theo các bước trên http://railsapps.github.com/rails-heroku-tutorial.html

chạy vào một problem locally with 1.9.3 and openssl

nhưng đã có thể ứng dụng và triển khai http://mccaffrey-rails32-193.herokuapp.com

không Procfile

mỏng và pg trong Gemfile

tôi đã thêm một số kết xuất debug để bạn có thể nhìn thấy các đường ray và phiên bản ruby ​​thông tin

điên của nó là một đường ray cơ bản ứng dụng kích thước sên là 28.9MB!

1

tôi đã cùng một vấn đề: Xác định 1.9.3 trong Gemfile của tôi, nhưng nó đã được sử dụng 1.9.2. Điều này đã khắc phục sự cố:

heroku config:add PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin 
Các vấn đề liên quan