我需要在HTTP请求之间存储大型数据集。数据来自csv文件,我需要传递请求。我有两个选择,因为cookie存储有4kb的限制:
1)使用会话存储而不是Cookie存储
2)将数据作为类方法存储在ActiveRecord类对象上:
class MyClass < ActiveRecord::Base
def self.store_data(file)
@file = file
end
end
由于它存储在模型的类方法中,因此它将在请求中保持不变。
哪一项对超过4kb的数据更有效?
答案 0 :(得分:0)
您最好不要将此类数据存储在持久数据存储中,例如您建议的数据库或Rails缓存。
通常,会话和cookie应该只存储简单的对象,因为它们是易变的。
def controller
@data = Rails.cache.read("requests/abc/#{session[:user_id_or_other_identifier]}")
end