5

我是 Ruby on Rails 的新手,应用程序正在本地机器上运行

本地捆绑工作

但是,当我尝试git push heroku master时,这是我得到的错误:

remote: 
remote: -----> Ruby/Rails app detected
remote: -----> Using Ruby version: ruby-1.9.3
remote: -----> Installing dependencies using 
remote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
remote:        /usr/bin/env: ruby1.9.1: No such file or directory
remote:  !
remote:  !     Failed to install gems via Bundler.
remote:  !
remote:  !     Heroku push rejected, failed to compile Ruby/rails app
remote: 

我的宝石文件

source 'http://rubygems.org'
ruby '1.9.3' 
gem 'rails', '4.0.0.beta1'

group :development, :test do
  gem 'sqlite3'
  gem 'rspec-rails'
end

group :assets do
  gem 'sass-rails',   '~> 4.0.0.beta1'
  gem 'coffee-rails', '~> 4.0.0.beta1'

  gem 'therubyracer', platforms: :ruby

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

gem 'turbolinks'
gem 'jbuilder', '~> 1.0.1'
group :test do
  gem 'capybara'
end

group :production do
  gem 'pg'
end

我错过了什么?提前致谢!

4

2 回答 2

9

我有一个类似的问题。问题是 Bundler 正在生成存根。Rails 4 应用程序不会将存根存储在应用程序的 bin/ 目录中。为了解决这个问题,您需要使用以下命令:

$ bundle config --delete bin

然后您需要更新 bin 目录以使用新的 Rails 4 可执行文件

$ rake rails:update:bin

然后使用以下命令将新的 bin/ 目录添加到您的版本控制中:

$ git add bin

提交更改并将您的代码推送到 Heroku

于 2013-07-05T21:39:15.493 回答
1

问题出在你的 rubyPATH​​ 上。所以首先看看你跑步时会发生什么

$ heroku run "ruby -v"
Running `ruby -v` attached to terminal... up, run.8734
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]

你得到类似的输出吗?如果没有,请检查您的路径。

$ heroku config -s | grep PATH
GEM_PATH=vendor/bundle/ruby/1.9.1
PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin

注意,bin路径如何。如果您缺少它,您可以通过以下命令手动设置PATH和添加。bin

$ heroku config:set PATH=bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
于 2013-04-27T20:31:53.377 回答