Come configurare Ruby on Rails senza database?

Sarebbe conveniente usare Ruby on Rails per un piccolo progetto di sito Web che non ha bisogno di un database. So che potrei creare un database vuoto in MySQL e andare da lì, ma qualcuno conosce un modo migliore per eseguire Rails senza un database?

Grazie

Decommentare questa riga nel file environment.rb :

 config.frameworks -= [ :active_record, :active_resource, :action_mailer] 

Per Rails 3 e Rails 4 :

Utilizzare l’opzione -O (Capital ‘O’) o --skip-activerecord per generare un’applicazione senza un database.

rails new myApp -O

o

rails new myApp --skip-activerecord

Questa risposta è stata ricondotta da qui


Per Rails 5 :

Utilizzare l’ --skip-active-record per generare un’applicazione senza un database

Notare il trattino extra ‘-‘ in contrasto con le precedenti versioni di Rails .

rails new myApp --skip-active-record

Per un progetto Rails 4/5 esistente, nel tuo file config/application.rb hai la seguente riga:

 require 'rails/all' 

(Come riferimento quella linea sta caricando questo file )
Quindi, anziché caricare TUTTO, è necessario caricare ciascuna libreria separatamente come segue:

 # active_record is what we're not going to use it, so comment it "just in case" # require "active_record/railtie" # This is not loaded in rails/all but inside active_record so add it if # you want your models work as expected require "active_model/railtie" # And now the rest require "action_controller/railtie" require "action_mailer/railtie" require "action_view/railtie" require "active_job/railtie" # Only for Rails >= 4.2 require "action_cable/engine" # Only for Rails >= 5.0 require "active_storage/engine" # Only for Rails >= 5.2 require "sprockets/railtie" require "rails/test_unit/railtie" 

Tieni d’occhio i commenti per sapere cosa caricare riguardo alla tua versione di Rails. Quindi commentare anche le seguenti righe:

 #config/environments/development.rb config.active_record.migration_error = :page_load #config/environments/production.rb config.active_record.dump_schema_after_migration = false #spec/rails_helper.rb ActiveRecord::Migration.maintain_test_schema! # Only for Rails >= 5.0 #config/initializers/new_framework_defaults.rb Rails.application.config.active_record.belongs_to_required_by_default = true 

Opzionalmente è ansible eliminare qualsiasi riferimento alla class ActiveRecord .

 rm app/models/application_record.rb 

AGGIORNARE: Vedi le ‘ Rails 3 – Come posso evitare del tutto il database? ‘domanda per un aggiornamento su come farlo con Rails 3.

Se non hai bisogno di un database, probabilmente non hai bisogno di avere il grosso di Rails. Potresti desiderare un framework più piccolo e personalizzabile su cui lavorare.

Sinatra è un piccolo framework che è ottimo per pubblicare pagine statiche di base.

Ma se insisti nell’usare Rails, ecco un articolo che ti mostrerà come fare proprio questo o qui .

In Rails 4 quando si avvia un nuovo progetto è ansible utilizzare -O o –skip-active-record

 rails new my_project -O rails new my_project --skip-active-record 

Se hai già creato un progetto, devi commentare

  require "active_record/railtie" 

da config / application.rb e

  config.active_record.migration_error = :page_load 

da config / environments / development.rb