Ваша версия spree
(по некоторым причинам) установлена на 0.40.0
.Я бы порекомендовал обновить это значение до 0.70.1
, что можно сделать, поместив эту строку в Gemfile
:
gem 'spree', '~> 0.70.1'
РЕДАКТИРОВАТЬ
Вы упомянули, что выя использовал Rails 3.1.1.rc2, что я и должен был заметить в стековой трассе в вопросе.
Упс.
В любом случае, когда вы не указывайте версию для Spree, Bundler попытается разрешить все зависимости как можно лучше.Отчасти потому, что вы использовали Rails 3.1.1.rc2, а отчасти потому, что Spree был достаточно глуп, чтобы указать зависимость >=
от Rails для 0.40.0, что эта проблема встречается.
Spree 0.40.0 пытается найти best Rails-версия, которая >= 3.0.3
, и 3.1.1.rc2
удовлетворяет этим критериям, поэтому она продолжает.
Итак, , что напрашивается на вопрос "ПочемуSpree не использует последнюю версию? "Это легко объяснимо, если вы понимаете разрешение зависимостей, которое многие люди понимают как сложное для понимания, но на самом деле это довольно просто.Вспомним компьютеры в 1970-х годах.
Все версии Spree >= 0.40.0
не имеют Rails, заданный как >= [something]
, главным образом потому, что парни из Spree пришли сюда и решили, что это глупоидея.Используя >=
, вы хотите получить все версии гема, которые >=
, к указанной версии, которая включает основные версии.И мы все знаем, как отличался Rails 2 от Rails 3, и поэтому мы должны предположить, что Rails 3 -> Rails 4 будет таким же «забавным».
Так что только Spree 0.40.0 имеет этозависимость, которая соответствует вашей конкретной версии (3.1.1.rc2) Rails.Нет выше ни одной бета / RC-версии Spree, которая бы соответствовала этой конкретной зависимости, и поэтому вместо нее используется Spree 0.40.0.
В заключение кажется, что эта проблема будет распространена только для людей, которые пытаютсяиспользовать версию Rails, для которой не существует соответствующей версии Spree.Одним из способов решения этой проблемы было бы вытащить самоцвет 0,40,0, но это приводит к его собственным проблемам, так как версии до этого также имеют такую же зависимость.Поэтому вы всегда должны проверять, поддерживается ли текущая версия Rails, которую вы используете, хотя бы одной версией Spree.