2009-08-27 3 views
0

Я пытаюсь создать модельные диаграммы, используя жемчужину железной дороги. Мне удалось создать диаграмму для другого приложения, но я пытаюсь разгадать какой-то «устаревший» код и все время сталкиваться с проблемами.Генератор диаграммы Ruby Railroad с NoMethodError для [] в Enumerable :: Enumerator

Я очень мало знаю о рубина или рельсам, так что любая помощь будет оценена ...

В принципе, я бегу:

$ railroad -v -M 

и получите:

Loading application environment 
Loading application classes 
./config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/core_ext/string/access.rb:43:in `first': undefined method `[]' for #<Enumerable::Enumerator:0xb70a72d0> (NoMethodError) 
from ./config/../vendor/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb:70:in `has_attachment' 
from ./app/models/asset.rb:5 
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require' 
from ./config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/dependencies.rb:495:in `require' 
from ./config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/dependencies.rb:342:in `new_constants_in' 
from ./config/../vendor/rails/activerecord/lib/../../activesupport/lib/active_support/dependencies.rb:495:in `require' 
from /home/myname/.gem/ruby/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:40:in `load_classes' 
from /home/myname/.gem/ruby/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:40:in `each' 
from /home/myname/.gem/ruby/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:40:in `load_classes' 
from /home/myname/.gem/ruby/1.8/gems/railroad-0.5.0/lib/railroad/app_diagram.rb:21:in `initialize' 
from /home/myname/.gem/ruby/1.8/gems/railroad-0.5.0/lib/railroad/models_diagram.rb:14:in `initialize' 
from /home/myname/.gem/ruby/1.8/gems/railroad-0.5.0/bin/railroad:36:in `new' 
from /home/myname/.gem/ruby/1.8/gems/railroad-0.5.0/bin/railroad:36 
from /home/myname/.gem/ruby/1.8/bin/railroad:19:in `load' 
from /home/myname/.gem/ruby/1.8/bin/railroad:19 

Я ve попытался переустановить attachment_fu (он уже был в папке поставщика/плагинов), но это, похоже, не помогло.

Я не удивлюсь, если возникла проблема с схемой - мне уже приходилось исправлять опечатки в именах столбцов, отсутствующих ссылках и т. Д. В любом случае, я могу решить, где он может умереть?

Большое спасибо!

ответ

0

Ваша версия Ruby, возможно, 1.8.7 или даже более поздняя, ​​слишком современна для attachment_fu. Чтобы исправить это, вам нужно изменить сам файл attachment_fu. Отредактируйте файл поставщик/плагины/attachment_fu/Библиотека/technoweenie/attachment_fu.rb и на линию 66 изменения:

options[:path_prefix].first == '/' 

(в конце) к

options[:path_prefix].starts_with? == '/' 

Альтернативы даунгрейднуть вашу версию Руби до 1.8.6 (возможно, возможно, даже ниже) или использовать другой плагин. Attachment_fu больше не поддерживается. Paperclip используется в наши дни.

Эта ошибка описана более подробно here.