我試圖創建西納特拉和ActiveRecord的(3.2.3)一個小應用程序(數據庫連接不會被自動關閉)。ActiveRecord連接警告。
這是我的主文件看起來像:
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') { ... }
...
它的工作原理,但有時我得到在控制檯的警告:
棄用警告:數據庫連接不會被自動關閉 ,請通過在您的連接上撥打
close
關閉 線程末尾的數據庫連接。例如: ActiveRecord :: Base.connection.close'
當發生警告時,頁面刷新需要很長時間。 我不明白我應該關閉連接的位置。我試圖把ActiveRecord::Base.connection.close
放在文件的底部,但它沒有幫助。
更新:
我忘了提及,我也用西納特拉/ reloader插件從sinatra-contrib寶石來看看效果,無需重新啓動服務器。
require "sinatra/reloader"
如果我發表評論,那麼問題就會消失。但無論如何,我想知道如何擺脫這個問題,而不禁用reloader。
太棒了。謝謝 – 2012-09-03 04:08:45