2

私は Ruby、Ruby on Rails、および Heroku Greenhorn であり、Michael Hartl の Ruby on Rails 3.2 チュートリアルからコーディングを学ぼうとしています。

この章の冒頭で、すべてを Heroku にデプロイすることに失敗しました。このエラーメッセージが表示されました(ただし、この問題を解決するために何をすべきかはわかりません):

$ git push heroku master
Counting objects: 69, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (54/54), done.
Writing objects: 100% (69/69), 27.34 KiB, done.
Total 69 (delta 5), reused 0 (delta 0)

-----> Heroku receiving push
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.2.0.rc
       Running: bundle install --without development:test --path vendor/bundle --binstubs bin/
       Fetching gem metadata from https://rubygems.org/........
       Bundler could not find compatible versions for gem "railties": 
       In Gemfile: 
       rails (= 3.2.6) ruby depends on 
       railties (= 3.2.6) ruby 
       jquery-rails (= 2.0.0) ruby depends on 
       railties (3.2.7.rc1) 

 !
 !     Failed to install gems via Bundler.
 !
 !     Heroku push rejected, failed to compile Ruby/rails app

To git@heroku.com:pacific-anchorage-8098.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:pacific-anchorage-8098.git'

私の Gemfile は次のようになります。

source 'https://rubygems.org'

gem 'rails', '3.2.6'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
group :development, :test do
  gem 'sqlite3', '1.3.5'
  gem 'rspec-rails', '2.10.0' 
end



# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '3.2.4'
  gem 'coffee-rails', '3.2.2'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '1.2.3'
end

gem 'jquery-rails', '2.0.0'

group :test do
  gem 'capybara', '1.1.2'
end

group :production do
  gem 'pg', '0.12.2'
end

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'debugger'

誰かが私を助けてくれることを願っています(申し訳ありませんが、私は初心者です-> Stackoverflowでもあります笑)。KR、ファビアン

4

3 に答える 3

3

デフォルトで生成された Gemfile (rails 3.2.6 を使用) では、使用する jquery-rails のバージョンが指定されていません。次のように、同じことをお勧めします。

# remove version number, just like you would see in a fresh rails app
gem 'jquery-rails' 

必要なバージョン 2.0.0 は railties 3.2.7.rc1 gem に依存しており、rails 3.2.6 では使用できません。

あなたのコードをアプリで使用しましたが、ローカル ホストにバンドルできませんでした。これは、heroku にプッシュする前に自分でそれを試したのではないかと思います。最初にローカル マシンにバンドル インストールする必要があります。

また、sass-rails と coffee-rails の必要なバージョン番号を上げたようです。クリーンな Rails アプリの Gemfile で期待されることは次のとおりです。

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'
于 2012-07-26T12:25:10.417 に答える
1

自分で問題を解決できるようになりました。これが方法でした:

  1. Gemfile に移動し、セクションをgem 'rails', '3.2.6'に変更しgem 'rails', '3.2.7rc1'ます。
  2. 保存
  3. 走るbundle install --without production
  4. 走るgit add .
  5. git にコミットするgit commit -a -m "Heroku recommit
  6. github likegit pushにプッシュし、ユーザー名とパスワードの指示に従います
  7. そして最後git push heroku master

うわー、これは大変でしたが、とても勉強になりました :-)

于 2012-07-26T12:33:13.640 に答える
0

問題は、jquery-rails gem がバンドル ファイル内の rails gem とは異なるバージョンの railties を必要とすることです。jquery-rails から「2.0.0」を削除して、もう一度やり直してください。Bundle は、Railties のバージョン 3.2.6 で動作する gem のバージョンをインストールします。

于 2012-07-26T12:25:57.663 に答える