0

我正在尝试使用铁路 gem 生成模型图。我已经设法为不同的应用程序生成了一个图表,但我试图让我的头脑围绕一些“遗留”代码,并不断遇到问题。

我对 ruby​​ 或 rails 知之甚少,所以任何帮助将不胜感激......

基本上,我运行:

$ 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 回答