2012-02-28 40 views
1

試圖將first_app推送到heroku。開始時看起來像它的工作不錯,但幾秒鐘後,我得到:Heroku推拒絕,railties依賴衝突? Ruby on Rails教程第1.4.2節

抓取寶石的元數據https://rubygems.org/ ......... 捆紮機找不到兼容版本的寶石「railties」: 在的Gemfile: 導軌(= 3.2.1)紅寶石取決於 railties(= 3.2.1)紅寶石 SASS-導軌(= 3.2.3)紅寶石取決於 railties(3.2.2.rc1)

它繼續告訴我,它沒有安裝寶石,推送被拒絕。

我的Gemfile目前是在本教程中指定的,但我已嘗試擺弄顯式版本號以查看我是否可以通過這種方式解決錯誤:沒有運氣。我也嘗試過更新捆綁包,這給了我一個類似的錯誤,但直接從Bundler中取出,而不是從Heroku推送;並刪除Gemfile.lock文件,導致其他錯誤,如此混亂我最終刪除了一切,重新開始。

+0

請複製粘貼你的Gemfile在這裏,請 – ka8725 2012-02-28 22:59:16

+0

我的Gemfile(請原諒我已經做的線破損):'source'https:// ruby​​gems.org'' 'gem'rails','3.2。 1'' '組:發展do' '寶石 '的sqlite3',「1.3.5'' 'end' '#只爲資產使用的,而不是由default.' required'在生產環境中 '#寶石 'group:assets do' 'gem'sass-rails','3.2.3'' 'gem'coffee-rails','3.2.2'' 'gem'uglifier','1.0.3'' 'end' 'gem'jque ry-rails','2.0.0'' – 2012-02-28 23:16:38

+0

同樣的問題,但這裏沒有解決方案爲我工作。 – 2012-02-29 23:08:27

回答

0

在我看來,你的集團資產發生了變化。使用方法:

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' 

    gem 'uglifier', '>= 1.0.3' 
    gem 'compass-rails' 
end 
+2

這樣做的竅門,但我留下了問題。首先,我閱讀教程使我相信我應該做出這些改變。我是否錯過了一些我實際上不應該這樣做的暗示?其次,是否有一些理由建議將therubyracer放入Gemfile中? – 2012-02-29 16:10:21

1

嘗試更新寶石SASS護欄〜> 3.2.4,你很可能需要更新jQuery的導軌〜> 2.0.1。然後在將應用推送到heroku之前運行捆綁軟件。捆綁應該告訴你是否還有依賴衝突。

+0

在發佈我的請求求助之前,我曾嘗試將sass-rails的版本號更改爲〜> 3.2.4。儘管我沒有修改jquery-rails版本號,但是我發現自己從Bundler獲得基本相同的錯誤信息。你的解決方案可能和ka8725一樣好,但我試圖儘可能接近教程中的「腳本」。 (我通過進一步測試發現,省略版本號完全給了我一個功能強大的應用程序。) – 2012-02-29 16:15:39

+0

@ HiramQ.Pustule ..我同意你的意見。即使這個答案給了我一個解決方案,我也試圖堅持教程中提供的腳本。此外,這種問題可能在未來發生,我們應該能夠知道在這種情況下應該怎麼做。 – WowBow 2012-03-29 03:55:44

1

我認爲這個錯誤是由教程中運行不同版本的gem引起的。運行gem -v來找出你正在運行的版本。他在教程中使用1.8.24。如果版本不同,請運行gem update --system 1.8.24來更新。然後再次運行捆綁軟件並將應用程序推送到heroku。