如何configuration没有数据库的Ruby on Rails?
将Ruby on Rails用于当前不需要数据库的小型网站项目将会很方便。 我知道我可以在MySQL中创build一个空的数据库,并从那里,但有没有人知道一个更好的方式来运行没有数据库的Rails?
谢谢
在environment.rb
文件中取消注释此行:
config.frameworks -= [ :active_record, :active_resource, :action_mailer]
对于Rails 3和Rails 4 :
使用
-O
(--skip-activerecord
')或--skip-activerecord
选项来生成没有数据库的应用程序。
rails new myApp -O
要么
rails new myApp --skip-activerecord
这个答案是从这里转载的
对于Rails 5 :
使用
--skip-active-record
选项来生成没有数据库的应用程序
注意额外的连字符“ – ”,而不是以前的Rails版本 。
rails new myApp --skip-active-record
对于现有的Rails 4/5项目,在你的config/application.rb
文件中有以下行:
require 'rails/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 "sprockets/railtie" require "rails/test_unit/railtie"
请留意这些评论,以了解关于您的Rails版本要加载的内容。 然后再评论以下几行:
#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!
更新:请参阅' Rails 3 – 我如何完全避免数据库? '问题的最新的Rails 3做到这一点。
如果你不需要数据库,那么你可能不需要大量的Rails。 你可能需要一个更小的可定制的框架来处理。
Sinatra是一个很小的框架,非常适合提供基本的静态页面。
但是如果你坚持使用Rails ,那么这篇文章就会告诉你如何做到这一点或者在这里 。
在Rails 4开始一个新项目时,你可以使用-O或–skip-active-record
rails new my_project -O rails new my_project --skip-active-record
如果你已经创build了一个项目,你需要评论
require "active_record/railtie"
从config / application.rb和
config.active_record.migration_error = :page_load
从config / environments / development.rb