0

鉄道の宝石を使用してモデル図を生成しようとしています。別のアプリのダイアグラムを生成することができましたが、「レガシー」コードに頭を悩ませようとしていて、問題が発生し続けています。

私はルビーやレールについてほとんど知らないので、助けていただければ幸いです...

基本的に、私は実行します:

$ 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 フォルダにありました) が、役に立たなかったようです。

スキーマに問題があったとしても驚かないでしょう。列名のタイプミス、参照の欠落などはすでに修正しなければなりませんでした。とにかく、どこで死にかけているのかを突き止めることができますか?

どうもありがとう!

4

1 に答える 1

0

お使いのバージョンの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はサポートされなくなりました。最近はペーパークリップが使われています。

このエラーについて詳しくは、こちらをご覧ください。

于 2010-05-04T12:32:22.443 に答える