【问题标题】:Ruby Railroad diagram generator fails with NoMethodError for [] in Enumerable::EnumeratorRuby 铁路图生成器失败并出现 NoMethodError for [] in Enumerable::Enumerator
【发布时间】:2010-11-23 07:08:58
【问题描述】:

我正在尝试使用铁路 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 文件夹中),但这似乎没有帮助。

如果架构出现问题,我不会感到惊讶——我已经不得不修复列名中的拼写错误、缺少引用等问题。有没有我可以弄清楚它可能会死在哪里?

非常感谢!

【问题讨论】:

    标签: ruby-on-rails schema uml ruby-on-rails-plugins


    【解决方案1】:

    您的 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。 Paperclip 这些天都在使用。

    更详细地描述了此错误here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      相关资源
      最近更新 更多