在 Rails 上使用 Ruby 更新和访问会话
Updating and accessing a session with Ruby on Rails
我正在与 ruby 合作开发 rails 2.5。
我有一个对象"payment_plan"。这个对象可以随着切换行为的改变而改变,我需要在整个会话中让这个对象保持活动状态,最后应该将它的一部分保存在我的 mongo
数据库中。我需要始终访问对象的最新状态。控制器应该能够更新对象,视图应该能够访问对象的最新状态。
任何关于如何做这样的事情的见解都会很棒 :)
我曾尝试在应用程序控制器中创建辅助函数,但在从视图访问它时遇到问题。
另外,我不希望将对象的状态保存在数据库中,因为以后调用数据库的次数太多。
要从视图访问控制器辅助函数,将其定义为辅助函数:
class SomeController < ApplicationController
helper def some_helper
end
end
至于在 session 中存储一些数据 - 没关系,rails 对 session[:my_object_prop] = 1
/session[:my_object_prop]
有很好的 session 存储机制(see in official guide)
但请记住:
- 默认情况下 session 存储在 cookie 中,客户端浏览器在 headers 向您的服务器发出每个请求时将其传入(即使是图像,如果它们在同一域中),因此在那里保存少量数据才实用。
- 用户可以清除他们的 cookie,数据将会丢失(这通常没问题)
- 与后者相反 - 用户可能会使用旧版本代码中的 session 数据访问您的应用程序
非常感谢,非常有帮助!
另一个问题,我可以在设置后覆盖会话值吗?
例如 session[:plan_id]="plan_id_1" 他们在 运行 中进一步做这样的事情: session[:plan_id]="plan_id_2"
谢谢!!!
我正在与 ruby 合作开发 rails 2.5。
我有一个对象"payment_plan"。这个对象可以随着切换行为的改变而改变,我需要在整个会话中让这个对象保持活动状态,最后应该将它的一部分保存在我的 mongo
数据库中。我需要始终访问对象的最新状态。控制器应该能够更新对象,视图应该能够访问对象的最新状态。
任何关于如何做这样的事情的见解都会很棒 :)
我曾尝试在应用程序控制器中创建辅助函数,但在从视图访问它时遇到问题。
另外,我不希望将对象的状态保存在数据库中,因为以后调用数据库的次数太多。
要从视图访问控制器辅助函数,将其定义为辅助函数:
class SomeController < ApplicationController
helper def some_helper
end
end
至于在 session 中存储一些数据 - 没关系,rails 对 session[:my_object_prop] = 1
/session[:my_object_prop]
有很好的 session 存储机制(see in official guide)
但请记住:
- 默认情况下 session 存储在 cookie 中,客户端浏览器在 headers 向您的服务器发出每个请求时将其传入(即使是图像,如果它们在同一域中),因此在那里保存少量数据才实用。
- 用户可以清除他们的 cookie,数据将会丢失(这通常没问题)
- 与后者相反 - 用户可能会使用旧版本代码中的 session 数据访问您的应用程序
非常感谢,非常有帮助!
另一个问题,我可以在设置后覆盖会话值吗? 例如 session[:plan_id]="plan_id_1" 他们在 运行 中进一步做这样的事情: session[:plan_id]="plan_id_2"
谢谢!!!