rails 3,heroku,如何使用会话

jpw*_*ynn 8 ruby-on-rails session-variables session-state

我看到了如何为rails 3设置会话的一个很好的答案(Rails会话当前实践)

我们从用户那里收集了一系列问题,我想在会议中保留他们的答案列表,直到我们结束然后全部写完......

但我不确定如何从会话中写入和读取信息......任何快速指针都会被理解为如何保存,例如,哈希的内容

此外,我们的应用程序托管在Heroku的网格上是否会改变我们可以/应该如何处理会话?

干杯,JP

wup*_*tah 18

你不必为Heroku改变任何东西.默认情况下,Rails会话存储在加密的cookie中,因此不需要服务器端配置.

但是,cookie只能存储4,096字节的数据.如果您在会话中存储大量数据(通常不建议这样做),您可能会溢出cookie.在这种情况下,您可能希望设置基于ActiveRecord或Memcached的cookie.这两个都很容易做,并不是真正的Heroku特定问题.如果您需要帮助,可以随时询问另一个StackOverflow问题.就目前而言,直到达到极限才会令人担忧.

在会话中存储和读取答案的一些粗略代码,假设问题和答案是ActiveRecord模型:

def store_answer(question, answer)
  session[:answers] ||= {}
  session[:answers][question.id] = answer.id
end

def read_answer(question)
  Answer.find(session[:answers][question.id])
end
Run Code Online (Sandbox Code Playgroud)