按rbenv -global
我的紅寶石版本是2.3.3
各種困難創造了不同版本的Rails應用和安裝狂歡
軌的版本我有:
*** LOCAL GEMS ***
rails (5.1.1, 5.0.0)
最初,我的目標是創建一個Rails大禮包。像往常一樣,我開始:
rails new spree_app
繼Spree README我加入以下寶石我gemfile
:
gem 'spree', '~> 3.2.0'
gem 'spree_auth_devise', '~> 3.2.0.beta'
gem 'spree_gateway', '~> 3.2.0.beta'
然後,當我跑bundle install
我遇到了以下錯誤:
Bundler could not find compatible versions for gem "rails":
In snapshot (Gemfile.lock):
rails (= 5.1.1)
In Gemfile:
rails (~> 5.1.1)
spree (~> 3.2.0) was resolved to 3.2.0, which depends on
spree_frontend (= 3.2.0) was resolved to 3.2.0, which depends on
canonical-rails (~> 0.1.0) was resolved to 0.1.2, which depends on
rails (< 5.1, >= 4.1)
spree (~> 3.2.0) was resolved to 3.2.0, which depends on
spree_core (= 3.2.0) was resolved to 3.2.0, which depends on
deface (~> 1.0) was resolved to 1.2.0, which depends on
rails (>= 4.1)
spree (~> 3.2.0) was resolved to 3.2.0, which depends on
spree_core (= 3.2.0) was resolved to 3.2.0, which depends on
rails (~> 5.0.0)
Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
運行bundle update
按照建議讓我這個:
Bundler could not find compatible versions for gem "rails":
In Gemfile:
rails (~> 5.1.1)
spree (~> 3.2.0) was resolved to 3.2.0, which depends on
spree_core (= 3.2.0) was resolved to 3.2.0, which depends on
rails (~> 5.0.0)
因此,在我看來,Spree依賴於Rails 5.0.0和我的5.1.1導致的問題。鑑於此,我將gem 'rails', '~> 5.1.1'
更改爲gem 'rails', '~> 5.0.0'
,運行bundle update
和bundle install
,並且所有操作都正確地進行了bundler方式。
問題是,這似乎已經打破了我的軌道應用程序。跑步,任何rails generate
命令或rails s
給了我以下錯誤:
/usr/local/opt/rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/railties-5.0.3/lib/rails/railtie/configuration.rb:95:in `method_missing': undefined method `load_defaults' for #<Rails::Application::Configuration:0x0055a1cd5a36f0> (NoMethodError)
對於我的生活,我不知道什麼是這裏的問題。
我的最後一次嘗試是試圖在5.0.0與生成一個新的Rails應用程序:
rails _5.0.0_ new spree_app_2
但不管出於什麼原因,這似乎沒有什麼區別。這個應用程序的gemfile
仍然包含gem 'rails', '~> 5.1.1'
,我遇到了我之前得到的所有相同的錯誤。
因此,我似乎也不知道如何管理不同版本的Rails,我沒有正確安裝Spree,或者兩者兼而有之。任何幫助表示讚賞,謝謝。
更新:部分解決
我仍然不知道如何生成其他任何版本的一個Rails應用程序比5.1.1
,並且只需在gemfile
改變版本仍然不爲我工作。在我看來,還需要其他一些改變。
我將gemfile
中的導軌版本從5.1.1
更改爲5.0.3
。使用5.0.2
查看了Rails應用中的/config/application.rb
文件,發現它們有不同的設置。
礦看着過這樣的:
module AppName
class Application < Rails::Application
config.load_defaults 5.1
end
end
和Rails應用程序中5.0.2
產生過這樣的:
module AppName
class Application < Rails::Application
config.generators do |generate|
generate.assets false
end
end
end
所以我換了什麼,我不得不與和它的工作!我不知道它爲什麼起作用,我仍然不知道爲什麼我可以從一開始就生成一個5.0.3
Rails應用程序。
那麼,這擺脫了問題與寶石相關性,但是就如同我做了什麼本來我得到同樣的 '未定義的方法「load_defaults」爲#<:: Rails的應用::配置:0x0055e0414ccdf0>'錯誤每當我嘗試運行諸如'rails s'或'rails generate'之類的rails命令時。 – Martin
那麼'gem install rails -v 5.0.3'然後'rails _5.0.3_ new application_name'呢?報告所有系統的 –
,在這裏轉到2.3.1;嘗試2.3.3真快! –