Сбой генератора диаграмм Ruby Railroad с NoMethodError for [] в Enumerable :: Enumerator - PullRequest
0 голосов
/ 27 августа 2009

Я пытаюсь сгенерировать модельные диаграммы, используя драгоценный камень железной дороги. Мне удалось сгенерировать диаграмму для другого приложения, но я пытаюсь разобраться с некоторым «устаревшим» кодом и продолжаю сталкиваться с проблемами.

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

В основном, я бегу:

$ 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

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

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

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

1 Ответ

0 голосов
/ 04 мая 2010

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

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

(в конце) до

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

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

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

...