0

I have a Rails app with a few model classes (e.g. Category, Subcategory, User, etc.). In order to implement a not-too-trivial filter functionality, I built a hierarchy of filter classes: FilterCategory, FilterSubcategory, etc., that derive from FilterBase. Each of them uses the appropriate "sister" model class (e.g. Category.find :all).

I quickly realized that I can't simply call the "sister" model class without using "require" first. However, I now suspect that using "require" is the main reason for two other problems I posted here and here, which probably mess up the class caching when config.cache_classes=false.

Is there another way for me to call these other models without requiring them?

I tried using the BaseWithoutTable plugin, but when I call the "sister model", I end up getting "Not a valid constant descriptor: nil", which occurs since Rails looks for "FilterCategory::Category" rather than "Category".

Any thoughts of the best way to do that?

I'm using Rails 2.3.8, Ruby 1.8.7.

Thanks, Amit

Community
  • 1
  • 1
AmitA
  • 3,239
  • 1
  • 22
  • 31

1 Answers1

1

I wonder if you want ::Category - getting Category from the top-level namespace rather than scoping it to FilterCategory?

If your models are in the app/models directory, you shouldn't need to explicitly require them - Rails already takes care of that.

trptcolin
  • 2,320
  • 13
  • 16