2009-08-27 5 views
0

Ich versuche, Modelldiagramme mit dem Eisenbahn-Juwel zu generieren. Ich habe es geschafft, ein Diagramm für eine andere App zu erstellen, aber ich versuche, mich mit einem "Legacy" -Code herumzuärgern und laufe immer wieder auf Probleme ein.Ruby Railroad-Diagramm-Generator schlägt mit NoMethodError für [] in Enumerable :: Enumerator

weiß, dass ich sehr wenig über Rubin oder Schienen, so dass jede Hilfe würde geschätzt ...

Grundsätzlich Ich betreibe:

$ railroad -v -M 

und erhalten:

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 

I‘ Ich habe versucht, attachment_fu neu zu installieren (es war bereits im Ordner vendor/plugins), aber das schien nicht zu helfen.

Ich wäre nicht überrascht, wenn es ein Problem mit dem Schema gab - ich musste bereits Tippfehler in Spaltennamen, fehlenden Referenzen, so etwas beheben. Kann ich überhaupt herausfinden, wo es sterben könnte?

Vielen Dank!

Antwort

0

Ihre Version von Ruby, wahrscheinlich 1.8.7 oder noch aktueller, ist zu modern für attachment_fu. Um dies zu beheben, müssen Sie attachment_fu selbst ändern. Bearbeiten Sie die Datei Verkäufer/plugins/attachment_fu/lib/technoweenie/attachment_fu.rb und auf der Leitung 66 Änderung:

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

(am Ende) zu

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

Alternativen sind degradieren Ihre Version von Ruby bis 1.8.6 (wahrscheinlich, vielleicht sogar niedriger) oder ein anderes Plugin verwenden. Attachment_fu wird nicht mehr unterstützt. Paperclip wird heutzutage benutzt.

Dieser Fehler wird genauer beschrieben here.