我正在尝试使用rails 3而没有任何db后端,但是当我尝试访问某个页面时它仍然坚持要求'sqlite3'gem,并且抛出错误no such file to load -- sqlite3,即使应用程序中没有代码需要sqlite,除了我离开数据库.yml的默认设置为sqlite3,因为删除内容引发了其他错误.知道如何在没有任何数据库的情况下使用rails并避免出现错误吗?谢谢.
(另外,我对Sinatra很熟悉 - 只喜欢这个项目的rails).
Zab*_*bba 99
Rails 3:
在application.rb,删除该require 'rails/all'行,而不是添加这些行:
require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "rails/test_unit/railtie"
require "sprockets/railtie"
Run Code Online (Sandbox Code Playgroud)
另请参阅在Rails 3中删除ActiveRecord 并查看Active Model railscast
Rails 3.2.x:
您还需要在application.rb中删除/注释掉这一行
config.active_record.whitelist_attributes = true
Run Code Online (Sandbox Code Playgroud)
并从development.rb中删除/注释这两行
config.active_record.mass_assignment_sanitizer = :strict
config.active_record.auto_explain_threshold_in_seconds = 0.5
Run Code Online (Sandbox Code Playgroud)
Rails 2.x:
在config/environment.rb添加(或去掉注释)的线
config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
Run Code Online (Sandbox Code Playgroud)
这将导致Rails不使用这些框架.(注意几乎看不见-=!)
小智 10
此外,在Rails 3中,删除对active_record的任何引用
配置/环境/ development.rb
config/environments/test.rb和
config/environments/production.rb等
config.active_record.mass_assignment_sanitizer = :strict
config.active_record.auto_explain_threshold_in_seconds = 0.5
Run Code Online (Sandbox Code Playgroud)
以及删除需要"rails/all"并在注释21(上面)中添加require行.
如果你没有使用数据库(这适用于Rails 3.1.1)