2011-02-12 30 views
5

Kullanıcı_searches adlı bir modülüm var. Kullanıcı modelinin çekirdeği olmayan bazı aramalar yapar, bu yüzden sorumluluğu başka bir yere koyuyorum. Tüm modellerimi, kullanıcı olarak adlandırılan bir lib alt klasöründe çekirdek olmayan kullanıcı işlevleri gerçekleştiren şekilde düzenlemek istiyorum. Şu anda koymak zorunda Kullanıcı modelinde modülün yöntemleri ...Alt dosya adları lib

require 'user/user_searches' 

class User < ActiveRecord::Base 

    include UserSearches 

end 

... Ben dosya lib klasöründe doğrudan eğer ihtiyaç gerekir, ancak bunun içinde eğer yapmazsanız dahil etmek alt klasör. Ne yapmam gerekiyor? 'a ihtiyacım yok?

cevap

3

Gerekli satırları lib/user.rb içine koyabilirsiniz, tüm gereksinimler uygulama başlatıldığında yinelemeli olarak yüklenir.

Alternatif olarak, bir başlatıcısı içine böyle bir şey koyabilirsiniz:

# put into config/initializers/load_lib.rb 
Dir["#{RAILS_ROOT}/lib/**/*.rb"].each { |f| require(f) } 

Bu sizin lib klasöründeki tüm yakut dosyaları gerektirecektir. bu

0

Bu yol sadece yüklemek için başlatıldı yöntem default_load_paths in-2.2.2 raylar/lib/initializer.rb dosyası içinde

neden eserler olduğunu :) istiyorum gerçekten buysa sadece emin olmak zorunda alt klasörleri olmayan lib klasörü, bunu çözmek için projenizi `environment.rb config dosyasını düzenleyebilir ve config.load_path dizisini tüm alt dizinlere aktarabilirsiniz.

+1

Rails 2.x için, environment.rb dosyasındaki belgelere göre aşağıdakileri ekleyin: 'config.autoload_paths + =% W (# {RAILS_ROOT}/lib/extra)' – ghayes

İlgili konular