2013-12-18 40 views
0

我不是主人,但我幾年前一直在使用Ruby-On-Rails,並認爲自己非常熟悉它。此外,我從過去10年一直以Web開發人員身份工作,從.Net開始。Ruby on Rails - 根據動作有條件的數據庫狀況

.Net我們用來在觸發任何查詢或進行事務之前手動創建數據庫連接。但另一方面,當產生一個新的請求線程時,會觸發一個初始化過程,其中包括建立一個數據庫連接。

現在我們正在開發一個項目,在那裏我們可能不需要爲每個動作都建立數據庫連接。是否有可能覆蓋默認的數據庫連接功能,並採取行動(可能是before_filter)?

PS:另一種方式我想創建一個額外的Sinatra網絡應用程序,其中包含所有這些操作,並用它們來完成工作或獲取數據。

回答

1

恩你在哪裏讀過Rails爲每個請求設置數據庫連接?我的理解是在需要時從連接池檢出連接。

另外我很驚訝這是一個大問題!如果你不需要訪問數據庫(這意味着沒有身份驗證,對吧?),那麼你應該緩存整個響應,服務器端和客戶端。

檢查出緩存指南:http://guides.rubyonrails.org/caching_with_rails.html和達利https://github.com/mperham/dalli

分離數據層(這樣的Rails上的API之上)的客戶端應用程序是一個很好的架構,我用成功的項目。然而,我建議葡萄代替西納特拉。

+0

對不起,我誤讀了這句話。你是對的。就像.Net一樣,它基本上彙集了連接並在需要時選擇一個連接。我知道緩存,但在當前範圍內似乎不合邏輯,因爲這些操作實際上只是進行一些計算(主要是基於AJAX)並返回結果。 –