Tôi đang cố tạo một ứng dụng nhỏ với Sinatra và ActiveRecord (3.2.3).Cảnh báo kết nối ActiveRecord. (Kết nối cơ sở dữ liệu sẽ không tự động bị đóng)
Đây là cách tập tin chính của tôi trông giống như:
require "sinatra"
require "sinatra/reloader"
require "active_record"
...
ActiveRecord::Base.establish_connection(
adapter: 'sqlite3',
database: 'db.sqlite3',
host: 'localhost',
)
class Post < ActiveRecord::Base
...
end
get('/') { ... }
get('/posts') { ... }
...
Nó hoạt động, nhưng đôi khi tôi nhận được một cảnh báo trong giao diện điều khiển:
deprecation Chú ý: kết nối cơ sở dữ liệu sẽ không bị đóng cửa tự động, vui lòng đóng kết nối cơ sở dữ liệu của bạn ở cuối luồng bằng cách gọi số
close
trên kết nối của bạn. Ví dụ: ActiveRecord :: Base.connection.close '
Khi xảy ra cảnh báo, phải mất một thời gian dài trước khi làm mới trang. Tôi không hiểu nơi tôi nên đóng kết nối. Tôi đã cố gắng để đặt ActiveRecord::Base.connection.close
ở dưới cùng của tập tin, nhưng nó không giúp đỡ.
update:
tôi quên đề cập đến mà tôi cũng sử dụng plugin Sinatra/reloader từ sinatra-contrib đá quý để nhìn vào hiệu lực thi hành mà không cần khởi động lại máy chủ.
require "sinatra/reloader"
Nếu tôi nhận xét thì vấn đề sẽ biến mất. Nhưng dù sao, tôi tự hỏi làm thế nào để thoát khỏi vấn đề mà không vô hiệu hóa nạp lại.
Tuyệt vời. Cảm ơn –