代码之家  ›  专栏  ›  技术社区  ›  sa125

Rails 3-如何完全避免数据库?

  •  45
  • sa125  · 技术社区  · 14 年前

    我尝试使用没有任何DB后端的Rails3,但它仍然坚持在我尝试访问页面时需要“sqlite3”gem,并抛出一个错误。 no such file to load -- sqlite3 ,即使应用程序中没有代码需要sqlite,但我将database.yml保留为sqlite3的默认设置,因为删除内容会引发其他错误。我知道如何在没有任何数据库的情况下使用Rails并避免所说的错误吗?谢谢。

    (另外,我对Sinatra也很熟悉——我更喜欢这个项目中的Rails)。

    2 回复  |  直到 11 年前
        1
  •  99
  •   Community CDub    8 年前

    轨道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"
    

    也看到 Remove ActiveRecord in Rails 3 看看 Active Model 铁路火车站

    Rails 3.2 x:

    您还需要在application.rb中删除/注释这一行。

    config.active_record.whitelist_attributes = true
    

    从development.rb中删除/注释这两行。

    config.active_record.mass_assignment_sanitizer = :strict
    config.active_record.auto_explain_threshold_in_seconds = 0.5
    

    Rails 2 x:

    config/environment.rb 添加(或取消注释)行

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

    这将导致Rails不使用这些框架。(注意几乎看不见 -= !)

        2
  •  10
  •   Mark Hall    13 年前

    此外,在Rails 3中,删除对活动记录的任何引用

    配置/环境/开发.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
    

    以及删除“rails/all”要求,并在注释21(如上)中添加要求行。

    如果不使用数据库(这适用于Rails 3.1.1)