【问题标题】:The has_many_polymorphs plugin is giving me this errorhas_many_polymorphs 插件给了我这个错误
【发布时间】:2011-04-24 01:41:49
【问题描述】:

这是我尝试创建新模型时日志中的错误:

/rubyprograms/dreamstill/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/configuration.rb:7: Configuration is not a class (TypeError)
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `require'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `require'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `require'
    from /rubyprograms/dreamstill/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs.rb:23
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `require'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `require'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.4/lib/active_support/dependencies.rb:239:in `require'
    from /rubyprograms/dreamstill/vendor/plugins/has_many_polymorphs/init.rb:2
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/plugin.rb:81
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/initializable.rb:25:in `instance_exec'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/initializable.rb:25:in `run'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/initializable.rb:50:in `run_initializers'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/initializable.rb:49:in `each'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/initializable.rb:49:in `run_initializers'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/application.rb:134:in `initialize!'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/application.rb:77:in `send'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/application.rb:77:in `method_missing'
    from /rubyprograms/dreamstill/config/environment.rb:5
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/application.rb:103:in `require'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/application.rb:103:in `require_environment!'
    from /Library/Ruby/Gems/1.8/gems/railties-3.0.4/lib/rails/commands.rb:16
    from script/rails:6:in `require'
    from script/rails:6

它来自 has_many_polymorphs 插件...

这里是 config/environment.rb:

# Load the rails application
require File.expand_path('../application', __FILE__)

# Initialize the rails application
Dreamstill::Application.initialize!

这是/rubyprograms/dreamstill/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/configuration.rb

module Rails #:nodoc:
  class Configuration

    def has_many_polymorphs_options
      ::HasManyPolymorphs.options
    end

    def has_many_polymorphs_options=(hash)
      ::HasManyPolymorphs.options = HashWithIndifferentAccess.new(hash)
    end

  end  
end

【问题讨论】:

  • 一如既往,您没有显示任何代码,所以我们应该想象是什么导致了错误:D。显示您的config/environment.rb 代码:)
  • 没什么有趣的:)。因此,此文件和第 23 行中的插件内部存在问题:/rubyprograms/dreamstill/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs.rb:23

标签: ruby-on-rails ruby ruby-on-rails-3 plugins has-many-polymorphs


【解决方案1】:

快速回答:

您的 has_many_polymorphs 插件已损坏。而且我认为您已将其包含在第 5 行的 environment.rb 文件中

UPD

如您所见,/rubyprograms/dreamstill/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs.rb:23 has_many_polymorphs.rb 文件第 23 行有一个错误。修复它:D。或者不要使用损坏的插件。

rails plugin remove has_many_polymorphs

【讨论】:

  • 我需要使用这个插件...我该如何解决它?你需要看/rubyprograms/dreamstill/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs.rb:23还是rubyprograms/dreamstill/vendor/plugins/has_many_polymorphs/lib/has_many_polymorphs/configuration.rb:7
  • 查看源代码,找到错误并尝试找出它损坏的原因。我不知道这个宝石是什么。您可以将错误报告发送给插件作者并要求他也修复它。
  • 你可以展示它,但我很确定有一些复杂的东西,看到这些线是不够的。
  • 好的,我发布了其中一个文件...错误指出配置不应该是一个类...
  • 你从哪里得到这个插件的?这是一些不适用于 Rails 3 的旧代码。将其从您的项目中删除。写你自己的。永远不要使用太多插件。并且永远不要使用过时的插件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 2013-11-07
相关资源
最近更新 更多