【问题标题】:Upgrade to Rails 4.0.5 results in uninitialized constant Surveyor::Helpers升级到 Rails 4.0.5 导致未初始化常量 Surveyor::Helpers
【发布时间】:2014-06-11 21:03:46
【问题描述】:

我一直在 Rails 3.2.x 中使用surveyor gem,在我的项目中没有任何问题。

gem 定义了位于 gem 的 lib 子目录中的模块。

例子

lib/surveyor/helpers/surveyor_helper_methods.rb

然后在我的 app/helpers 目录中包含该模块并按如下方式扩展。

include Surveyor::Helpers::SurveyorHelperMethods

这在 Rails 3 中运行良好,但在 Rails 4 中会导致错误 Uninitialized constant Surveyor::Helpers。

作为测试,我将 gem 中的目录直接复制到我的项目 lib 目录结构中,这样就消除了错误;所以似乎包含不再查看 gems 的 lib 树。将所有文件直接移动到我的项目中并不是一个好的解决方案。有没有其他方法可以解决这个问题?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4


    【解决方案1】:

    在你的助手中,只包含这个文件..所以它会像

    require 'surveyor/helpers/surveyor_helper_methods'
    module UserHelper
     include Surveyor::Helpers::SurveyorHelperMethods
    end 
    

    【讨论】:

    • 然后我只收到以下错误消息。 uninitialized constant Surveyor::Helpers::SurveyorHelperMethods::AssetPipeline
    • 然后这样做require 'surveyor/*'
    • 好的;我看到像这样的要求会根据具体情况进行处理。看来我的路线也有类似的问题。 gem 指定应该选择的路线;这些现在也没有出现在我的路线中。在 Rails 3 中,这些东西是自动拾取的。是否有某种方法可以修改加载路径或类似于自动将这些东西包含在 gem 中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-01
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多