ruby-on-rails - 使用 Ruby on Rails 更新和访问会话
问题描述
我正在使用 ruby on rails 2.5。
我有一个对象“payment_plan”。这个对象可以随着切换行为的改变而改变,我需要在整个会话中保持这个对象的活动状态,最后它应该保存在我的mongo
数据库中。我需要始终访问对象的最新状态。控制器应该能够更新对象,并且视图应该能够访问对象的最新状态。
关于如何做这样的事情的任何见解都会很棒:)
我尝试在应用程序控制器中创建一个辅助函数,但从视图中访问它时遇到问题。
另外我不喜欢将对象的状态保存在数据库中,因为以后会调用太多的数据库。
解决方案
要从视图访问控制器辅助函数,请将其定义为辅助函数:
class SomeController < ApplicationController
helper def some_helper
end
end
至于在会话中存储一些数据 - 没关系,rails 有很好的session[:my_object_prop] = 1
/会话存储机制session[:my_object_prop]
(参见官方指南)
但请记住,即:
- 默认情况下,会话存储在 cookie 中,这些 cookie 在客户端浏览器的每个请求中传递到您的服务器(甚至是图像,如果它们在同一个域中)的标头中,因此只在其中保存少量数据是可行的。
- 用户可以清除他们的 cookie,数据将丢失(这通常很好)
- 与后者相反 - 用户可能会带着来自旧版本代码的会话数据来到您的应用程序
推荐阅读
- android - 如何一次访问一个按钮?
- python - 我该如何解决这个错误:对于下面的代码 gievn,解包的值太多(预期为 4)?
- python - 当您可以控制数据时,为什么需要 back_populates?
- python-3.x - 安装和卸载 flake8 插件后出现错误。执行 --help 或 --version 时抛出的错误
- selenium - 抓取标签内的隐藏数据
- mysql - 使用加载数据infile将日期时间字段正确导入mysql表
- css - 滑动滑块导航的 CSS 问题
- python - 将列表保存到数据框时 Python 中的 MemoryError
- google-sheets - 需要将 Excel 公式转换为 Google 表格公式
- tex - (wx)Maxima:数字的一般根,超出sqrt?