2012-01-26 7 views
12

Tôi vừa mới bắt đầu một dự án đường ray mới và muốn sử dụng MongoidDB thông qua đá quý Mongoid. Theo các hướng dẫn trên trang web Mongoid, tôi đã thêm các dòng sau vào Gemfile tôi:Xóa cơ sở dữ liệu.yml khi sử dụng Mongoid in Rails 3.2

gem "mongoid", "~> 2.4" 
gem "bson_ext", "~> 1.5" 

sau đó tôi tiến hành để loại bỏ tập tin database.yml tôi theo các hướng dẫn here. tập tin application.rb của tôi bây giờ trông giống như vậy:

require "action_controller/railtie" 
require "action_mailer/railtie" 
require "active_resource/railtie" 
require "rails/test_unit/railtie" 
require "sprockets/railtie" # Uncomment this line for Rails 3.1+ 

Bây giờ, khi tôi sử dụng rails s để bắt đầu máy chủ của tôi trong việc phát triển, tôi nhận được các lỗi sau đây:

~/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.0/lib/rails/railtie/configuration.rb:85:in `method_missing': undefined method `active_record' for #<Rails::Application::Configuration:0x007ff38b20d0b0> (NoMethodError) 

Tôi đã cố gắng tìm kiếm một giải pháp, nhưng nó dường như chưa có ai gặp vấn đề của tôi. Tôi có làm điều gì sai? Điều này có phải do bản cập nhật Rails 3.2 gần đây không?

Cảm ơn sự giúp đỡ của bạn!

CẬP NHẬT (Jan 26): Dựa trên thông tin từ Dylan Markow, tôi sử dụng lệnh terminal

grep -r active_record config/ 

Và đặt bất kỳ refrences để active_record trong khối nhận xét.

Tôi có một bộ điều khiển đơn giản với một hành động thậm chí không nhấn vào cơ sở dữ liệu. Khi tôi truy cập vào hành động qua trình duyệt, tôi nhận được

ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished): 
    activerecord (3.2.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:374:in `retrieve_connection' 
    activerecord (3.2.0) lib/active_record/connection_adapters/abstract/connection_specification.rb:168:in `retrieve_connection' 
    activerecord (3.2.0) lib/active_record/connection_adapters/abstract/connection_specification.rb:142:in `connection' 
    activerecord (3.2.0) lib/active_record/query_cache.rb:67:in `rescue in call' 
    activerecord (3.2.0) lib/active_record/query_cache.rb:61:in `call' 
    activerecord (3.2.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:443:in `call' 
    actionpack (3.2.0) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call' 
    activesupport (3.2.0) lib/active_support/callbacks.rb:405:in `_run__186077810047649794__call__2115495702768811851__callbacks' 
    activesupport (3.2.0) lib/active_support/callbacks.rb:405:in `__run_callback' 
    activesupport (3.2.0) lib/active_support/callbacks.rb:385:in `_run_call_callbacks' 
    activesupport (3.2.0) lib/active_support/callbacks.rb:81:in `run_callbacks' 
    actionpack (3.2.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call' 
    actionpack (3.2.0) lib/action_dispatch/middleware/reloader.rb:65:in `call' 
    actionpack (3.2.0) lib/action_dispatch/middleware/remote_ip.rb:31:in `call' 
    actionpack (3.2.0) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call' 
    actionpack (3.2.0) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call' 
    railties (3.2.0) lib/rails/rack/logger.rb:26:in `call_app' 
    railties (3.2.0) lib/rails/rack/logger.rb:16:in `call' 
    actionpack (3.2.0) lib/action_dispatch/middleware/request_id.rb:22:in `call' 
    rack (1.4.1) lib/rack/methodoverride.rb:21:in `call' 
    rack (1.4.1) lib/rack/runtime.rb:17:in `call' 
    activesupport (3.2.0) lib/active_support/cache/strategy/local_cache.rb:72:in `call' 
    rack (1.4.1) lib/rack/lock.rb:15:in `call' 
    actionpack (3.2.0) lib/action_dispatch/middleware/static.rb:53:in `call' 
    railties (3.2.0) lib/rails/engine.rb:479:in `call' 
    railties (3.2.0) lib/rails/application.rb:220:in `call' 
    rack (1.4.1) lib/rack/content_length.rb:14:in `call' 
    railties (3.2.0) lib/rails/rack/log_tailer.rb:14:in `call' 
    rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service' 
    /Users/aren/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service' 
    /Users/aren/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run' 
    /Users/aren/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread' 


    Rendered /Users/aren/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.8ms) 
    Rendered /Users/aren/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (39.4ms) 
    Rendered /Users/aren/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.2.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (54.0ms) 

Làm cách nào để khắc phục vấn đề trên? Tại sao kết nối cơ sở dữ liệu ActiveRecord thậm chí đang cố gắng được thiết lập?

Cảm ơn bạn lần nữa!

Trả lời

20

lẽ bình luận này hai dòng

config/environments/development.rb: 

# config.active_record.mass_assignment_sanitizer = :strict 
# config.active_record.auto_explain_threshold_in_seconds = 0.5 
+0

Bạn nói đúng. Khi tôi nhận xét các dòng dưới đây, nó hoạt động tốt. – Zeck

16

Có thể bạn đang đặt một số cài đặt config.active_record ở đâu đó trong thư mục cấu hình của mình (development.rb, test.rb, v.v ...). Bạn sẽ muốn nhận xét các cài đặt này vì bạn không sử dụng ActiveRecord.

Bạn có thể làm điều gì đó như grep -r active_record config/ trong thư mục dự án của mình để tìm tệp tham chiếu active_record.

Cập nhật: Đảm bảo bạn đã xóa đường require 'rails/all' từ config/application.rb. Dòng require mới mà bạn đã thêm được cho là sẽ thay thế dòng đó. Nếu không, rails/all vẫn tải ActiveRecord.

+0

Xem các cập nhật trên, chúng tôi thực hiện - Tôi đã gỡ bỏ tất cả các tài liệu tham khảo của active_record từ bất kỳ tập tin trong thư mục cấu hình, nhưng tôi vẫn nhận được lỗi ActiveRecord. – aren55555

+0

Xem câu trả lời cập nhật của tôi. Tôi nghĩ bạn đã quên xóa dòng 'đường ray/all' yêu cầu. –

+0

Tôi đã xóa 'đường ray/tất cả' – aren55555