sharath
sharath

Reputation: 176

classes under lib folder are not detected in rails

In my project, I have written few classes under lib folder but rails is not detecting those classes in production environment. I get the uninitalized Constant error.

I use Apache in the production environment and rails script/server in the development environment.

Is anything wrong with RAILS_ROOT environment? Can anyone suggest how to overcome this problem?

Upvotes: 2

Views: 1652

Answers (2)

Peter Brown
Peter Brown

Reputation: 51717

Ensure that the name of your file matches the name of the class or module defined in it, accounting for any directories.

ie:

lib/my_new_class.rb

class MyNewClass
end

Or if you have a directory hierarchy:

lib/my_files/my_module.rb

module MyFiles
  module MyModule
  end
end

Upvotes: 0

zengr
zengr

Reputation: 38919

I am not sure about Rails, but you achieve that in Ruby by this: (it will work in rails too, but rails must be having some elegant way)

require File.join(File.dirname(__FILE__), "lib",'your_module_name')
include your_module_name

Try this in config/application.rb (I assume you have rails3)

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

Update: Rails - why would a model inside RAILS_ROOT/lib not be available in production mode?

Upvotes: 1

Related Questions