我试图在模型类中存储一个值,例如,几个复选框的值。
我想我可以将它们存储在类实例变量中,但是,当用户单击屏幕上的其他位置时,这些值会被清除。
如何维护我的类实例变量的值。
例如
class Person < ActiveRecord::Base
def setAge(age)
@@age = age
def getAge
return @@age
但是,看起来@@age 在设置后是空的。
我试图在模型类中存储一个值,例如,几个复选框的值。
我想我可以将它们存储在类实例变量中,但是,当用户单击屏幕上的其他位置时,这些值会被清除。
如何维护我的类实例变量的值。
例如
class Person < ActiveRecord::Base
def setAge(age)
@@age = age
def getAge
return @@age
但是,看起来@@age 在设置后是空的。
rails 框架重新加载development
模式中的类。之前对类变量的请求中设置的任何值都会在新请求中丢失。如果您在该production
模式下运行您的服务器,您的代码将工作。
您尝试做的是一种不好的做法,因为并发请求可能会覆盖状态,并且当您生成 Rails 服务器的多个实例时,此解决方案将不起作用(如 @iltempo 所述)
如果您尝试在两个客户端请求之间保持状态,则最好使用session
变量。
请求 1
session[:age] = params['age']
请求 2
u = User.new
u.age = session[:age]
正如@nash 提到的,这不是 Ruby 代码。
但是,如果您在类级别存储数据,则它仅对当前进程有效。这意味着如果您运行多个流程,例如乘客和其他 Web 服务器,则这些流程之间不会共享数据。
年龄听起来也与 Person 实例而不是类有关。