Как настроить Ruby on Rails без базы данных? - PullRequest
96 голосов
/ 04 мая 2009

Было бы удобно использовать Ruby on Rails для небольшого проекта веб-сайта, который в настоящее время не нуждается в базе данных. Я знаю, что мог бы создать пустую базу данных в MySQL и пойти дальше, но кто-нибудь знает лучший способ запустить Rails без базы данных?

Спасибо

Ответы [ 6 ]

102 голосов
/ 05 июля 2011

Для Рельсы 3 и Рельсы 4 :

Используйте параметр -O (заглавная 'O') или --skip-activerecord для создания приложения без базы данных.

rails new myApp -O

или

rails new myApp --skip-activerecord

Этот ответ повторяется с здесь


Для Рельсы 5 :

Используйте параметр --skip-active-record для создания приложения без базы данных

Обратите внимание на дополнительный дефис '-' в отличие от предыдущих версий Rails .

rails new myApp --skip-active-record

54 голосов
/ 04 мая 2009

Раскомментируйте эту строку в файле environment.rb:

config.frameworks -= [ :active_record, :active_resource, :action_mailer]
45 голосов
/ 26 сентября 2014

Для существующего проекта Rails 4/5/6 в вашем файле config/application.rb есть следующая строка:

require 'rails/all'

(Как ссылка на эту строку загружается этот файл )
Таким образом, вместо загрузки ALL, вы должны загрузить каждую библиотеку отдельно следующим образом:

# 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 "action_mailbox/engine" # Only for Rails >= 6.0
require "action_text/engine" # Only for Rails >= 6.0
require "sprockets/railtie"
require "rails/test_unit/railtie"

Следите за комментариями, чтобы знать, что загружать относительно вашей версии Rails. Затем прокомментируйте также следующие строки:

#config/environments/development.rb
config.active_record.migration_error = :page_load
config.active_record.verbose_query_logs = true

#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

При желании вы можете удалить любую ссылку на класс ActiveRecord.

rm app/models/application_record.rb
22 голосов
/ 28 марта 2011

ОБНОВЛЕНИЕ: см. Вопрос « Rails 3 - как вообще избежать базы данных? », чтобы узнать, как это сделать с Rails 3.

14 голосов
/ 18 сентября 2013

В Rails 4 при запуске нового проекта вы можете использовать -O или --skip-active-record

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

Если вы уже создали проект, вам нужно будет прокомментировать

 require "active_record/railtie"

из config / application.rb и

 config.active_record.migration_error = :page_load

из config / environment / development.rb

14 голосов
/ 04 мая 2009

Если вам не нужна база данных, вам, вероятно, не нужна основная часть Rails. Вы можете хотеть меньшую более настраиваемую структуру, чтобы работать с.

Sinatra - это крошечный фреймворк, который отлично подходит для обслуживания основных статических страниц.

Но если вы настаиваете на использовании Rails здесь - статья, которая покажет вам, как это сделать, или здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...