Recentemente, tenho experimentado o EmberJS e um aplicativo Rails API. A configuração inicial da árvore para modelos / visualizações / controladores era mais ou menos assim:
.
├── Gemfile
├── Gemfile.lock
├── README.md
├── Rakefile
└── app
  ├── assets
  │  ├── javascripts
  │  │  ├── controllers
  │  │  ├── helpers
  │  │  ├── routes
  │  │  ├── templates
  │  │  ├── views
  ├── controllers
  ├── models
  └── views
  └── index.html.haml
Da minha perspectiva, as subárvores de app / assets / javascripts e app / eram muito semelhantes. Achei que seria legal ter os arquivos javascript que representam o modelo no cliente no mesmo diretório que os modelos no servidor. Então, em vez de:
.
└── app
  ├── assets
  │  └── javascripts
  │    └── models
  |    └── user.js
  └── models
    └── user.rb
Pode ser interessante ter esta estrutura:
.
└── app  Â
  └── models
    ├── user.rb
└── user.js
Não estou defendendo que seja uma boa ideia … mas achei que seria interessante ver se isso fosse possÃvel. Acontece que tudo o que você precisa fazer é dizer a Sprockets como procurar nos subdiretórios apropriados do aplicativo adicionando isto a application.rb:
module MyApplication
class Application < Rails::Application
config.assets.paths += %w(models views controllers).map{|p| "#{Rails.root}/app/#{p}"}
end
end
e diga ao arquivo de manifesto sprocket para procurar seus arquivos em application.js:
//= require user