我正在尝试为我的模型创建本地的persistante变量,但是听起来如此简单的东西不起作用。
我的模型中有这个:
class Coupon < ActiveRecord::Base
@username = "empty"
@admin = false
def self.setUser(name, isAdmin)
@username = name
@admin = isAdmin
end
def self.get_user (user)#an attempt to access the current_user but did not work i call this from the controller (I understand it is not best practice)
#@user = user
self.setUser(user.username,user.admin?)
end
def has_not_occurred
errors.add("property_of","name is not valid:#{@username}") if !validPropertyOf?
end
end
def validProperty_of?
return property_of == @username # || @Admin
end
end
我实际上在set.user中得到一个“”而不是“empty”或者username的新值。如何使这些值保持不变?我已经在每个方法中打印了值,因此它们会在方法中保留但不会因某些原因而超出范围。
@username在获取has_not_accurred时始终为nil或“”。 这是为什么以及如何使其持续存在?非常感谢你。
当我设置它时,我无法访问@user(get_user方法)。我稍后在validateProperty_of
获得一个nil实例答案 0 :(得分:0)
我认为你忘记了数据库表,你没有创建这个,这就是为什么每个变量都是非持久性的。
答案 1 :(得分:0)
升级的Rails现在可以使用了。不知道为什么。