Hello,

I wrote a new class that I decided to put in the /app/lib folder. Part
way through one of the methods, I call #new on the model, update some of
the fields and then call #save (on the model).

When I do this though, I get a 'const_missing' error coming from Active
Support. Here's the error:

"......./lib/active_support/dependencies.rb:105:in `const_missing':
uninitialized constant ClassA::ModelA (NameError)"

The 'ModelA' is the model I'm trying to access, and 'ClassA' is the
class in /app/lib/class_a.rb. I'm not sure why it seems to think that
ModelA is a part of ClassA, perhaps that's the problem?

I would have probably just used "require ../models/model_a.rb", but I
found the following at StackOverflow:

"One way to solve this would be to explicitly require the model file
aircraft.rb. However, you will find this approach quickly leads to
insanity as it will break the Rails auto-loader in subtle and
astonishing ways. Rails is much easier if you work with the Rails class
loader, not against it."

Source:
http://stackoverflow.com/questions/326277/rails-calling-a-model-class-in-a-library

I then found an example at
http://www.strictlyuntyped.com/2008/06/rails-where-to-put-other-files.html
that suggests adding this to the file in the /app/lib folder:

  def self.included(base)
     base.extend(ClassMethods)
  end

And then creating a file in /config/initializers with the following:

  require 'rails_extensions/user_logger'

  ActionController::Base.class_eval do
    include ActionController::UserLogger
  end

Being new to Ruby/Rails, I'm really not sure what this supposed to do,
but I'm guessing it will work. That post was written in 2008 though, so
I'm thinking there may be a better way for this.

Does anyone have a suggestion as to the best way to get a class in the
/app/lib folder to see a model?

Thank you very much,
Mike
-- 
Posted via http://www.ruby-forum.com/.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to