9

私はここでRailsを初めて使用し、ほとんどの場合Ruby on Railsチュートリアルに従っています。それ以来、私は独自のアプリケーションを作成することに決めましたが、ベータ版の Rails 4 gem を使用しています。ローカル マシン (Windows 7) に PostgreSQL をインストールし、開発を行いました。すべてがうまく機能します!(私は生計を立てる C#、ASP、.NET の仕事よりも Rails が大好きです!)

しかし、Heroku に移行することを決めてからは、頭を悩ませていました。Heroku にプッシュする前に、標準を作成しました。

c:\Sites\elms>git add .
c:\Sites\elms>git commit -m "My comment"
c:\Sites\elms>git push
c:\Sites\elms>git push heroku master

Heroku Toolbelt (gem ではありません) をダウンロードしてインストールしました。最初のエラーで、指定した Ruby >= 1.9.3 でherokuあることを確認する必要があることがわかりました。GemfileGemfile

source 'https://rubygems.org'
ruby "1.9.3"

gem 'rails', '4.0.0.beta1'

gem 'pg'
gem 'haml-rails'
gem 'httparty'
gem 'devise', git: 'git://github.com/plataformatec/devise.git', branch: 'rails4'
gem 'cancan'
gem 'bootstrap-sass'
gem 'formtastic'
gem 'formtastic-plus-bootstrap'

group :development do
  gem 'annotate'
  gem 'better_errors'
  gem 'binding_of_caller'
  gem 'guard-spork'
  gem 'guard-rspec'
  gem 'meta_request'
  gem 'rb-notifu'
  gem 'schema_to_scaffold'
  gem 'wdm', :platforms => [:mswin, :mingw], :require => false
  gem 'win32console'
end

group :development, :test do
  gem 'rspec-rails'
  gem 'pry'
  gem 'spork-rails', git: 'git://github.com/sahilm/spork-rails.git', branch: 'rails-4'
  gem 'spork', '~> 1.0.0rc3'
end

group :test do
  gem 'capybara'
  gem 'factory_girl_rails'
  gem "shoulda-matchers"
end

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

gem 'jquery-rails'    
gem 'turbolinks'
gem 'jbuilder', '~> 1.0.1'

プッシュは最終的に問題なく機能しましたが、データベースを移行しようとすると、次のようになりました。

c:\Sites\elms>heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.2205
/usr/bin/env: ruby.exe: No such file or directory

私も試しました: heroku run bin/rake db:migrate、同じエラーが発生します。Heroku で Getting Started with Rails 4.x を使用して、Rails 4 アプリを Heroku にプッシュしています。どんな助けでも大歓迎です!

ああ、実行後にも問題がありました:

c:\Sites\elmx>gem install rails --pre

Windows 7 の環境パス変数に追加C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\bin;することでこれを解決しました (次のようなものを実行しようとすると、レールが見つからないというエラーが表示されました。

rails -v
rails g controller User

しかし、私がちょうど入力した場合:

rails

それは私が使用できるすべてのコマンドを私に与えるでしょう(あたかも実行しているかのようにrails -h

Windows Rails Installer を使用してマシンをセットアップし、Rails 4 gem をインストールしました。これは非常に苛立たしく、同じ問題を抱えている人を見つけようとしてインターネットを調べました.

編集1:

ユーザーの Path 環境変数を削除し、システムの Path 環境変数を次のように変更しました。

 C:\RailsInstaller\Ruby1.9.3\bin;C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\bin;C:\Program Files (x86)\git\cmd;C:\Program Files (x86)\Heroku\bin

パス変数を上記に更新し、Heroku Toolbelt をアンインストールしてから再インストールし (Heroku の部分がパス変数にある理由)、次のことを試しました。

c:\Sites\elms>ruby -v
ruby 1.9.3p125 (2012-02-16) [i386-mingw32]

c:\Sites\elms>rails -v
Rails 4.0.0.beta1

c:\Sites\elms>heroku -v
 !    `-v` is not a heroku command.
 !    Perhaps you meant `-h`.
 !    See `heroku help` for a list of available commands.

c:\Sites\elms>heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.2100
/usr/bin/env: ruby.exe: No such file or directory

c:\Sites\elms>heroku run bin/rake db:migrate
Running `bin/rake db:migrate` attached to terminal... up, run.2872
/usr/bin/env: ruby.exe: No such file or directory

編集2:

それで、私はこのベンチャーでもう少し進みました。実行できることがわかりました:

c:\Sites\elms>heroku run bash
~ $ cd bin
~/bin $ ruby rake db:migrate

それから rake を実行し、データベースを Heroku に移行します。しかし、問題はさらに悪化します!ページに移動しようとすると、何か問題があることがわかります。そのため、ログ ファイルを実行すると、次のような結果が得られます。

c:\Sites\elms>heroku logs
2013-03-16T05:34:20+00:00 heroku[api]: Enable Logplex by
2013-03-16T05:34:20+00:00 heroku[api]: Release v2 created by 
2013-03-16T05:34:36+00:00 heroku[slugc]: Slug compilation started
2013-03-16T05:35:37+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 13423 -e $RAILS_ENV`
2013-03-16T05:35:37+00:00 heroku[slugc]: Slug compilation finished
2013-03-16T05:35:37+00:00 app[web.1]: bash: bin/rails: No such file or directory

2013-03-16T05:35:39+00:00 heroku[web.1]: Process exited with status 127
2013-03-16T05:35:39+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 33539 -e $RAILS_ENV`
2013-03-16T05:35:40+00:00 app[web.1]: /usr/bin/env: ruby.exe: No such file or directory
2013-03-16T05:35:41+00:00 heroku[web.1]: Process exited with status 127
2013-03-16T05:35:41+00:00 heroku[web.1]: State changed from starting to crashed
2013-03-16T05:35:41+00:00 heroku[web.1]: State changed from crashed to starting
2013-03-16T05:35:44+00:00 heroku[web.1]: Starting process with command `bin/rails server -p 23452 -e $RAILS_ENV`
2013-03-16T05:35:44+00:00 app[web.1]: /usr/bin/env: ruby.exe: No such file or directory

これは本当にイライラしています。一体何が何だかわかりません/usr/bin/env。私が推測できる唯一のことはPATH、Windowsのようなものだということです。この場合、サーバーがどこにあるかわからないのはなぜruby.exeですか?

Rails 4 以外のアプリケーションを作成し、Heroku に投稿して問題なく表示することができました。これは本当に私の神経質になっています。

4

5 に答える 5

43

アプリケーションで 3 つのファイルの最初の行を変更する必要があります。

bin/bundle
bin/rails
bin/rake

その代わり

#!/usr/bin/env ruby.exe

でなければなりません

#!/usr/bin/env ruby

それがエラーである理由です:

/usr/bin/env: ruby.exe: No such file or directory

次に、正常に実行します。

heroku run rake db:migrate

それは私のための仕事です。

于 2013-04-28T21:36:58.440 に答える
3

同様の問題があり、他の人がすでに述べているように、以下を変更すると役立ちました。

#!/usr/bin/env ruby.exe#!/usr/bin/env ruby

ただし、もともと Windows で開発していたためにまだ存在していた隠しキャリッジ リターンを削除する必要もありました (推測しますか?)。

dos2unixはこれをやっていた。

dos2unix bin/bundle bin/rake bin/rails

その後、変更をコミットし、heroku にプッシュしましたが、すべて問題ありませんでした。

于 2015-07-23T15:04:48.750 に答える