Rails 3: как переопределить метод в геме - PullRequest
4 голосов
/ 08 апреля 2011

Я хочу добавить собственный код в один из методов в геме. В Rails 2.3.8 я добавил .rb файл в каталог config / initializers, и все работало отлично.

С тех пор как перешел на Rail3, то, что работает раньше, больше не работает. Я попытался добавить mongoid_slug.rb в config / initializers и в / lib и автоматически загрузить / lib путь в application.rb. Оба не сработали.

Внутри mongoid_slug.rb я пробовал:

module Mongoid
  module Slug    
     module ClassMethods  
         def find_unique_slug  
             #mycode   
         end  
     end  
  end  
end

И

Mongoid::Slug::ClassMethods.module_eval do   
  def find_unique_slug  
    #mycode  
  end  
end  

И все же оба не смогли. Кто-нибудь может предложить несколько советов о том, как обезьяна исправить патч в Rails3? Спасибо!

1 Ответ

0 голосов
/ 08 июня 2012

это работает для меня,

module Mongoid
  module Slug    
     module ClassMethods  
         def find_unique_slug  
             #mycode   
         end  
     end  
  end  
end

проблема в другом, я думаю, что при включении этого файла или при вызове этого метода следует включать, например: включить Abt :: I18n в ApplicationHelper или где-то еще

...