2010-10-17 36 views
45

Tôi đang cố gắng sử dụng đường ray 3 mà không có bất kỳ chương trình phụ trợ db nào, nhưng nó vẫn khăng khăng đòi hỏi đá quý 'sqlite3' khi tôi cố truy cập trang và ném lỗi no such file to load -- sqlite3, mặc dù không có mã nào trong ứng dụng yêu cầu sqlite, ngoại trừ Tôi đã để database.yml với thiết lập mặc định của nó cho sqlite3, vì việc loại bỏ nội dung nêu ra các lỗi khác. Bất kỳ ý tưởng làm thế nào tôi có thể sử dụng đường ray mà không có bất kỳ cơ sở dữ liệu và tránh lỗi nói? cảm ơn.Rails 3 - làm cách nào để tránh hoàn toàn cơ sở dữ liệu?

(ngoài ra, tôi quen thuộc với Sinatra - chỉ thích đường ray cho dự án này).

Trả lời

98

Rails 3:

Trong application.rb, loại bỏ dòng require 'rails/all' và thay vào đó thêm những dòng này:

require "action_controller/railtie" 
require "action_mailer/railtie" 
require "active_resource/railtie" 
require "rails/test_unit/railtie" 
require "sprockets/railtie" 

Xem thêm Remove ActiveRecord in Rails 3 và nhìn vào Active Model railscast

Rails 3.2.x:

Bạn cũng sẽ cần xóa/com ment ra dòng này trong application.rb

config.active_record.whitelist_attributes = true 

Và xóa/bình luận hai dòng sau từ development.rb

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

Rails 2.x:

Trong config/environment.rb add (hoặc bỏ ghi chú) các dòng

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

Điều này sẽ khiến Rails không sử dụng các khung đó. (Lưu ý gần-invisible -=!)

+0

Tôi nghĩ điều này hoạt động trong đường ray 2.x - Tôi nhận được thông báo phản đối và lỗi trong r3. – sa125

+0

Cập nhật câu trả lời bằng phương pháp được sử dụng trong Rails 3 – Zabba

+0

đã làm điều đó - cảm ơn! – sa125

10

Ngoài ra, trong Rails 3, loại bỏ bất kỳ tài liệu tham khảo để active_record trong

config/môi trường/development.rb

config/môi trường/test.rb và

config/môi trường/production.rb như

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

cũng như loại bỏ yêu cầu "đường ray/all" và thêm các yêu cầu dòng trong bình luận 21 (ở trên).

nếu bạn không sử dụng cơ sở dữ liệu (điều này làm việc với Rails 3.1.1)

Các vấn đề liên quan