Rails 3 / RVM - Acts_as_list скомпилирован локально - Почему Ruby не видит этот драгоценный камень? - PullRequest
1 голос
/ 09 марта 2011

Я не могу понять, почему рельсы / рубины не могут увидеть этот камень, несмотря на то, что каждый говорит мне, что камень виден. Я скомпилировал этот gem локально из ветки github, так как основная версия, похоже, не работает в Rails 3. Или, может быть, я что-то упускаю полностью.

Ovid:lightserve dlipa$ gem list
*** LOCAL GEMS ***
..
acts_as_list (0.2.1)
..

И

Ovid:lightserve dlipa$ cat Gemfile
...
gem "acts_as_list", "0.2.1"
...

И

Ovid:lightserve dlipa$ bundle install
    ...
    Using acts_as_list (0.2.1)  
    Your bundle is updated! Use `bundle show [gemname]` to see where a bundled gem is installed

Но

Ovid:lightserve dlipa$ r c
RubyGems Environment:
  - RUBYGEMS VERSION: 1.6.1
  - RUBY VERSION: 1.9.2 (2011-02-18 patchlevel 180) [x86_64-darwin10.6.0]
  - INSTALLATION DIRECTORY: /Users/dlipa/.rvm/gems/ruby-1.9.2-p180
  - RUBY EXECUTABLE: /Users/dlipa/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/dlipa/.rvm/gems/ruby-1.9.2-p180/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-10
  - GEM PATHS:
     - /Users/dlipa/.rvm/gems/ruby-1.9.2-p180
     - /Users/dlipa/.rvm/gems/ruby-1.9.2-p180@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - :sources => ["http://rubygems.org/", "http://gems.github.com"]
  - REMOTE SOURCES:
     - http://rubygems.org/
     - http://gems.github.com
Loading development environment (Rails 3.0.5)
ruby-1.9.2-p180 :001 > require 'acts_as_list'
LoadError: no such file to load -- acts_as_list
    from /Users/dlipa/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require'
    from /Users/dlipa/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `block in require'
    from /Users/dlipa/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `block in load_dependency'
    from /Users/dlipa/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /Users/dlipa/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Users/dlipa/.rvm/gems/ruby-1.9.2-p180/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require'
    from (irb):1
    from /Users/dlipa/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands/console.rb:44:in `start'
    from /Users/dlipa/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands/console.rb:8:in `start'
    from /Users/dlipa/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.5/lib/rails/commands.rb:23:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
ruby-1.9.2-p180 :002 > 

И

Ovid:lightserve dlipa$ irb
ruby-1.9.2-p180 :001 > require 'acts_as_list'
LoadError: no such file to load -- acts_as_list
    from /Users/dlipa/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/dlipa/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from (irb):1
    from /Users/dlipa/.rvm/rubies/ruby-1.9.2-p180/bin/irb:16:in `<main>'
ruby-1.9.2-p180 :002 > 

Может кто-нибудь объяснить, почему это может происходить? Буду очень признателен!

** ОБНОВЛЕНИЕ - Ответ на предложение Эндрю Маршалла **

Я изменил Gemfile, чтобы читать гем непосредственно из git, но это не решило проблему. Означает ли это, что есть проблема с этим драгоценным камнем? Сообщение об ошибке не очень полезно; -)

Удалены:

Ovid:lightserve dlipa$ bundle show acts_as_list
Could not find gem 'acts_as_list' in the current bundle.

Затем добавлено обратно через:

gem "acts_as_list", :git => "git://github.com/vpereira/acts_as_list.git"

Ovid:lightserve dlipa$ bundle install
Updating git://github.com/vpereira/acts_as_list.git
...

Та же проблема, даже если показ пакета совпадает с коммитом на этой странице:

Ovid:lightserve dlipa$ bundle show acts_as_list
/Users/dlipa/.rvm/gems/ruby-1.9.2-p180/bundler/gems/acts_as_list-4cb76a8b198c

Ovid:lightserve dlipa$ irb
ruby-1.9.2-p180 :001 > require 'acts_as_list'
LoadError: no such file to load -- acts_as_list
    from /Users/dlipa/.rvm/rubies/ruby-1.9.2-..

Я только что заглянул в драгоценный камень, и оказалось, что в нем нет файла act_as_list. Так что, похоже, он специфический, хотя Rails / Ruby и плохо о нем сообщает.

API-интерфейс изменился на:

ruby-1.9.2-p180 :003 > require 'active_record/acts/list'
 => nil 
ruby-1.9.2-p180 :004 > ActiveRecord::Acts::List
 => ActiveRecord::Acts::List 

Ответы [ 2 ]

2 голосов
/ 09 марта 2011

Попробуйте использовать последнюю версию гема из git, поместив в свой Gemfile следующее:

gem 'acts_as_list', :git => 'git://github.com/swanandp/acts_as_list.git'

Затем снова запустите bundle update acts_as_list.

Также обратите внимание, что act_as_list не имеетобновлялся довольно давно, поэтому не удивляйтесь, если он не будет работать, как ожидалось.

0 голосов
/ 09 марта 2011

если вы используете bundler, rvm и rails, что я бы посоветовал

  • проверьте, используете ли вы нужную версию ruby ​​(ruby -v)
  • неиспользуйте sudo для установки gem
  • , настройте свой Gemfile для получения доступа к репозиторию git (если вы не работаете и не используете пассажир)
  • , если последний вариант не работает, вы можете стереть всеЕсли у вас есть act_as_list, клонируйте его в свой каталог vendors / gems и загрузите его в свой Gemfile, без репозитория git
  • удалите его из Gemfile, клонируйте в каталог vendors / plugin.(это то, как я использую его сейчас)

На данный момент, я бы порекомендовал использовать эту версию https://github.com/swanandp/acts_as_list.

Я не поддерживал свой форк, потому что он работал вмое заявление.Я сделал много исправлений ошибок, но они никогда не были объединены с версией, поддерживаемой рельсами.Мой запрос на извлечение был просто ИГНОРИРОВАН владельцем РЕПО

.
...