#ruby-on-rails #github #rake #clone #dbmigrate
#ruby-on-rails #github #rake #клонировать #dbmigrate
Вопрос:
Поскольку я новичок в rails и изучил самые основы из книг, теперь я решил, что могу узнать гораздо больше, читая код других пользователей и пытаясь разобраться в нем, поэтому я зарегистрировался на github и все там настроил. Теперь я прочитал, что один хороший проект с открытым исходным кодом, у которого можно поучиться, radiant, поэтому я перешел к https://github.com/radiant/radiant и клонировал его в локальный каталог. Затем я поступил следующим образом:
cd radiant
bundle install
, который прошел нормальноrake db:migrate
, который первым вернул:
рейк прерван! Вы уже активировали rake 0.9.2, но для вашего Gemfile требуется rake 0.8.7. Использование bundle exec может привести к
Итак, я ввел bundle exec rake db:migrate
и получил следующее:
ПРИМЕЧАНИЕ: Gem.source_index устарел, используйте спецификацию. Он будет удален в или после 2011-11-01. Gem.source_index, вызванный из c:/Ruby192/lib/ruby/gems/1.9.1/gems/rails-2.3.14/lib/rails/gem_dependency Рейк прерван! Нет такого файла для загрузки — radius
Итак, мне интересно, как решить эту проблему? Я также заметил, что Gemfile и Gemfile.блокировка уже существовала в папке radiant, когда она была клонирована, что, возможно, могло быть частью проблемы?
Также мне интересно, является ли crutial, что я запускаю ту же версию rails, на которой написан проект?
Теперь следует сказать, что в настоящее время у меня установлен rails 3.0.5 и запущен в Windows
Я надеюсь, что кто-нибудь сможет мне здесь помочь, это было довольно неприятно, поскольку я не смог запустить ни одного клонированного репозитория github (radiant здесь всего лишь один пример).
Комментарии:
1. отредактируйте свой Gemfile. попробуйте ‘bundle update’ после запуска ‘bundle install’.
Ответ №1:
Вам следует отредактировать свой Gemfile
и сделать так, чтобы для него требовался более новый rake. Также вы можете выполнить rake db:migrate --trace
, чтобы получить дополнительную информацию об ошибке.
Комментарии:
1. @Jason Blade более новый rake
0.9.2
, если вы не знали
Ответ №2:
Предупреждение об устаревании по-прежнему является всего лишь предупреждением, и оно не должно вызывать у вас никаких проблем. Часть этой ошибки, которая имеет отношение к No such file to load -- radius
. Вероятно, вам нужно следовать инструкциям по установке Radiant, которые включают в себя запуск gem install radiant
, прежде чем куда-либо удалять код этого проекта.
Bundler управляет установкой и использованием драгоценных камней в вашем Gemfile, и если Gemfile.присутствует блокировка, она будет использовать именно эти версии. Это означает, что вы не можете запустить Radiant с Rails 3.0.5, поскольку в Gemfile указано 2.3.14. Однако Bundler автоматически установит Rails 2.3.14 и его зависимости, так что вам не нужно беспокоиться об этом.
Кстати, этот проект выглядит так, как будто им очень плохо управляли. Проект Rails / gem не часто заставляет вас фактически клонировать его, чтобы использовать. Если вы хотите проверить проект Rails 3, у которого можно поучиться, у меня есть тонкое приложение Rails 3, которое должно было стать общедоступным API на Github с действительно чистым кодом:http://github.com/coreyward/instavibe
Комментарии:
1. спасибо, что нашли время прояснить это для меня! Я обязательно проверю ваше приложение. Когда вы говорите, что «проект Rails / gem не часто заставляет вас фактически клонировать его, чтобы использовать», каков на самом деле распространенный способ? Я имею в виду, не нужно ли мне разветвлять / клонировать ваше приложение, чтобы использовать его? (Я чувствую, что это может быть несколько глупый вопрос, но я надеюсь, что вы поймете мою искренность, чтобы учиться)
2. Нет, сторонний код становится общедоступным (для использования, а не для разработки) в Ruby через Gems. Это не абсолютный, но для большинства вещей Gem имеет смысл. Затем вы можете установить их через
gem install [name]
, а затем включить их, запустивrequire 'rubygems'; require 'name'
в вашем Ruby. Rails даже сам по себе является жемчужиной. 😉