рельсы 3: драгоценные камни установлены успешно, но не могут использовать их в моем приложении

Я сделал чистую установку rails 3.0.6. Мое приложение работает нормально, за исключением того, что я не могу использовать все драгоценные камни, которые не поставлялись с рельсами 3. Все они находятся в списке драгоценных камней. У меня также есть они в Gemfile, и я выполнил установку и обновление пакета.

Например, с matthuhiggins-foreigner:

после rake db: migrate он жалуется, что add_foreign_key не определен.

У меня такая же проблема с меньшим:

нет .css, созданного из .less)

geokit-rails3:

Неизвестный ключ (и): происхождение, внутри

драгоценный камень, который возвращает geokit-rails3:

/Library/Ruby/Gems/1.8/gems/geokit-rails3-0.1.3/lib/geokit-rails3.rb

Окружение драгоценного камня возвращает:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.5.0
  - RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-10
  - GEM PATHS:
     - /Library/Ruby/Gems/1.8
     - /Users/administrator/.gem/ruby/1.8
     - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

Я давно занимаюсь этой проблемой. Пожалуйста помоги! Спасибо!


person julia1532    schedule 15.04.2011    source источник


Ответы (3)


Rails 3 не загружает драгоценные камни, не указанные в вашем Gemfile, даже если они установлены в вашей системе. Сначала вам нужно явно указать их там.

Типичный рабочий процесс в R3 заключается не в установке ваших драгоценных камней и их последующем использовании, а в записи записей в Gemfile, а затем их установке путем установки связки с помощью «gem install bundle» и получения всех оставшихся гемов с помощью «bundle install». При установке пакета будут установлены все необходимые драгоценные камни, которых у вас еще нет, но будут использоваться те, которые у вас есть.

(Пакетное обновление, предложенное другим пользователем, переведет все ваши драгоценные камни на самую последнюю доступную версию, которая соответствует вашим требованиям, изложенным в Gemfile, даже если те, которые уже установлены, удовлетворяют требованиям). т.е. если вам нужен foo_gem> = 1.0 и у вас установлен foo_gem 1.0.1, "пакетная установка" не изменит его, но "пакетное обновление" установит foo_gem 1.0.3, если он доступен.

Если вы работаете над несколькими приложениями с конфликтующими (или потенциально конфликтующими) гемами, я рекомендую изучить RVM и создать гемсет для каждого проекта. Это особенно ценно, если вы все еще работаете над проектами Rails 2.x вместе с проектами R3.

person IdahoEv    schedule 15.04.2011
comment
На самом деле у меня есть все драгоценные камни в Gemfile, и я также выполнил установку пакета. Есть другие мысли? - person julia1532; 16.04.2011

Попробуй это:

  1. Обновите гем, запустив gem update --system
  2. Убедитесь, что в вашем гем-файле перечислены драгоценные камни
  3. Запустите bundle update, чтобы обновить все свои драгоценные камни в гем-файле.

Надеюсь, это поможет.

person brettish    schedule 15.04.2011

Я вернулся к этой проблеме через несколько дней и исправил все проблемы!

gem matthuggins-foreigner называется foreigner, поэтому я добавил это в Gemfile: gem 'foreigner'

С geokit я просто следовал инструкциям здесь: https://github.com/jlecour/geokit-rails3

Сделав меньше, я установил меньше драгоценного камня и больше плагина, а затем перезапустил сервер: https://github.com/cloudhead/more

person julia1532    schedule 28.04.2011