Rails: классы кэширования игнорируют mixin - PullRequest
0 голосов
/ 16 сентября 2009

Я расширил класс ActiveRecord :: Base следующим образом:

Библиотека / activerecord_ext.rb:

class ActiveRecord::Base
  named_scope( 
    :recent, 
    :conditions => ['created_at > ?', (Time.new - 3.day)], 
    :order => 'created_at DESC', 
    :limit => 5
  )
end

В config / environment.rb:

require "activerecord_ext"

Это работает нормально, пока не включено кэширование классов. Когда я установил

config.cache_classes = true

Я получаю эту ошибку:

>> Person.recent
NoMethodError: You have a nil object when you didn't expect it!
The error occurred while evaluating nil.call
 from /Library/Ruby/Gems/1.8/gems/activerecord-2.3.3/lib/active_record/named_scope.rb:102:in `recent'
 from (irb):1

Я предполагаю, что я делаю что-то не так с включением расширения. Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 16 сентября 2009

require 'activerecord_ext' до или после строки config.cache_classes = true? В любом случае попробуйте вместо этого указать инициализатор require 'activerecord_ext'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...