Agora que o Rails 3 beta foi lançado, pensei em reescrever um aplicativo no qual acabei de começar a trabalhar no Rails 3 beta, tanto para sentir como para começar. O aplicativo usa MongoDB e MongoMapper para todos os seus modelos e, portanto, não precisa do ActiveRecord. Na versão anterior, estou descarregando o registro ativo da seguinte maneira:
config.frameworks -= [ :active_record ] # inside environment.rb
Na versão mais recente, isso não funciona - apenas gera um erro:
/Library/Ruby/Gems/1.8/gems/railties-3.0.0.beta/lib/rails/configuration.rb:126:in
`frameworks': config.frameworks in no longer supported. See the generated
config/boot.rb for steps on how to limit the frameworks that will be loaded
(RuntimeError)
from *snip*
Claro, eu olhei para boot.rb conforme sugerido, mas até onde posso ver, não há nenhuma pista aqui de como eu poderia fazer para descarregar AR. O motivo pelo qual preciso fazer isso é porque não só é bobagem carregar algo que não quero, mas também porque ele está reclamando da impossibilidade de fazer uma conexão DB mesmo quando tento executar um gerador para um controlador. Isso ocorre porque eu limpei database.yml
e substituí com detalhes de conexão para MongoDB a fim de usar esta essência para usar database.yml para detalhes de conexão MongoDB. Não sei por que precisa ser capaz de iniciar uma conexão de banco de dados apenas para gerar um controlador de qualquer maneira ....
Alguém está ciente da maneira correta do Rails 3 de fazer isso?
fonte
require "sprockets/railtie"
em seuapplication.rb
arquivo.--skip-active-record
. Observe o traço extra.Rails 4
Eu estava procurando como desabilitá-lo no rails 4 e só encontrei esta resposta que não funciona mais no rails 4. Então é assim que você pode fazer no rails 4 (testado no RC1).
Em um novo projeto
Em um projeto existente
gem 'sqlite3'
ougem 'pg'
.Em config / application.rb, substitua
require 'rails/all'
porEm config / environment / development.rb, remova ou comente
config.active_record.migration_error = :page_load
Potencialmente, você tem que remover os ajudantes active_record do spec_helper (via VenoM nos comentários)
Potencialmente, você terá que remover o middleware ConnectionManagement (parece ser o caso do unicórnio):
config.app_middleware.delete "ActiveRecord::ConnectionAdapters::ConnectionManagement"
(via https://stackoverflow.com/a/18087332/764342 )Espero que isso ajude outras pessoas que procuram como desabilitar ActiveRecord no Rails 4.
fonte
Para um novo aplicativo rails, você pode fazer com que ele exclua o registro ativo especificando o parâmetro --skip-active-record. Por exemplo:
fonte
Se você gerou um novo projeto usando Rails 3.2, você também precisará comentar:
e
em seu arquivo development.rb .
fonte
Todas as opções acima são verdadeiras. A outra coisa que eu tive que fazer no rails 3.1 é comentar
no
config/application.rb
.fonte
Se você estiver executando o rspec, você também precisa remover (em spec_helper):
e remover
fonte
Também comentar para fora
(anotado nos trilhos 3.2.13)
fonte