我使用設計的軌道運行到一個cookie存儲溢出問題,它看起來像它可能是時間使用不同的會話存儲。當然redis會解決這個問題,但我不想在開發機器上使用redis。我想知道是否有像php這樣的文件系統商店。我只是想用它來將Sessions存儲在開發機器上。我搜索了谷歌,但沒有找到具體的東西。這不應該是太複雜了,我相信我失去了一些東西明顯Rails的存儲會話上的文件系統
1
A
回答
3
由於Rails有管理會話的解耦方法,可以實現使用文件存儲它的數據的自定義會話存儲。 但是,請記住,這必須嚴格用於開發,文件I/O速度都遠不一樣快RAM,可以成爲一個嚴重的瓶頸,以您的應用程序。
這裏的完整實現使用文件系統的自定義會話存儲的(代碼是不是我的,鏈接在結束)
class CustomFileStore < ActionDispatch::Session::AbstractStore
def get_session(env, session_id)
session_data = {}
session_id ||= generate_sid
File.open(tmp_file(session_id),'r') do |f|
data = f.read
session_data = ::Marshal.load(data) unless data.empty?
end rescue nil
[session_id, session_data]
end
def set_session(env, session_id, session_data, options)
File.open(tmp_file(session_id), 'w+') do |f|
encoded = ::Marshal.dump(session_data)
f.write(encoded)
end
session_id
end
def destroy_session(env, session_id, options)
File.unlink(tmp_file(session_id)) if File.exists?(tmp_file(session_id))
generate_sid
end
def tmp_file(session_id)
File.join(Rails.root, 'tmp', 'sessions', session_id)
end
end
另存爲「custom_file_store.rb」中的「LIB」文件夾,然後配置你的應用程序使用「配置/初始化/ session_store.rb」 (改變RailsApp您的應用程序的名稱)
RailsApp::Application.config.session_store :custom_file_store
這就是下面的代碼就使用! 查看這篇文章原始作者的代碼: http://bradpauly.com/blog/2013-02-01-rails-3-custom-session-store.html
相關問題
- 1. 在文件系統上存儲文件的Sharepoint文檔庫
- 2. 如何將上傳的文件存儲在文件系統中?
- 3. 上傳文件和存儲到php中的文件系統
- 4. 在Azure網站中存儲上傳的文件:文件系統或Azure存儲
- 5. Rails會話不存儲
- 6. 緩存已存儲在文件系統上的解碼位圖
- 7. IDE像系統 - 數據庫或文件系統的存儲
- 8. 哪個postgres系統表存儲會話授權的PID映射?
- 9. Rails 2.3是否支持基於文件的會話存儲?
- 10. NetBeans的插件存儲庫在哪裏存儲在文件系統上?
- 11. 使用緩存系統進行會話存儲?
- 12. Ruby on Rails的會話存儲問題
- 13. 選擇足夠的Rails會話存儲
- 14. 在數據庫vs文件系統上存儲xml文件
- 15. 如何在文件系統上存儲文件或圖像?
- 16. 將文件存儲在文件系統上
- 17. 重氮主題文件存儲在文件系統上嗎?
- 18. IE8在文件系統中存儲存儲在localStorage中的值?
- 19. 從java文件夾文件系統輸出存儲的文件
- 20. 如何在文件系統中存儲圖像Ruby on Rails
- 21. 真實文件系統中存儲的html5文件系統在哪裏?
- 22. 存儲圖像?雲上的數據庫或文件系統
- 23. 複製上傳的圖像存儲在文件系統
- 24. 分佈式文件系統作爲git上的存儲層
- 25. 顯示存儲在文件系統上的圖像
- 26. git-merge與本地文件系統上的存儲庫
- 27. Xcode在文件系統上存儲$ {PRODUCT_NAME}的位置?
- 28. Hive在哪裏存儲文件系統上的數據?
- 29. 本地文件系統上的Gradle存儲
- 30. 哪裏elasticsearch存儲在文件系統
爲什麼你不能使用redis?這是您的要求的正確解決方案。說了這麼多,你實際上是尋找在本地打開一個文件,寫它,然後再把它讀你的Rails應用裏面的方法? – SudoGuru
不,我正在尋找使用php等文件的會話存儲。我不想在我的開發機器上安裝redis,就這些。此外,由於我使用Windows和Linux之間的2檯筆記本電腦和備用很多時候,我真的不希望安裝的Redis上所有的人。一個文件系統適合我的開發需求。我將使用Redis的商店進行生產(或測試) –
@SomeshMukherjee我不知道它是在Windows上如何複雜,但在Linux上建立的Redis不低於'命令和apt-get安裝redis'(或'須藤yum的更多安裝redis')。你只需執行'redis-server'就可以運行它(如果你不想要,不需要配置)。 – panzi