Eu vi isto em algum blog sobre Rails nacional, mas confesso que não me lembro em qual foi, por isto se você souber me avisa que coloco o link aqui.

Quando se atinge um número muito grande de models no seu projeto, fica meio difícil encontrar rapidamente o que deseja. Sem contar a falta de organização que isto gera.

A forma mais fácil de organizar os models é usando namespaces. Mas namespaces não era uma solução interessante no meu caso. A melhor opção seria dividir meus models em pastas assim:

  • app
    • models
      • api
      • cache
      • database
      • tableless

Tinha visto em algum lugar que bastava apenas criar as pastas e mover os arquivos para dentro delas. Mas isto não funciona nas versões 1.2+ do Rails. Se este for o seu caso, é necessário incluir o seguinte código em seu arquivo environment.rb:

[source:ruby]
config.load_paths += %W[
#{RAILS_ROOT}/app/models/api
#{RAILS_ROOT}/app/models/cache
#{RAILS_ROOT}/app/models/database
#{RAILS_ROOT}/app/models/tableless
]
[/source]

Inclua o código acima dentro do bloco Rails::Initializer.run.

Agora sim, meu models ficaram organizados!