config.autoload_paths无效,无法在rails 4中包含模块

时间:2017-01-24 07:45:59

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

我创建了一个简单的模块并将其放在lib目录中并包含在控制器文件中。

下面是控制器代码。

class UserController < ApplicationController
  include Departments
  def create
    user_data = Hash.new
    user_data["data"] = "hello world!"
    user_data["price"] = 12
    render :json => user_data
  end
end

当我尝试执行它时,我看到以下错误

ActionController::RoutingError (uninitialized constant UserController:: Departments):

我搜索过论坛并看到添加

config.autoload_paths += %W(#{config.root}/lib)

解决了这个问题,但在我的情况下却没有。我使用的是Rails 4.2.7.1和ruby ruby​​ 1.9.3p547。

任何人都可以指出可能存在的问题,谢谢。

1 个答案:

答案 0 :(得分:1)

我的命名convestion错了,我在我的模块名称下在lib文件夹下创建了一个子目录,然后创建了类名为.rb的文件并且它有效。

参考:"Uninitialized constant" error when including a module