实例变量在rails模型中不起作用

时间:2011-03-27 19:22:03

标签: ruby-on-rails variables model

我正在尝试为我的模型创建本地的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实例

2 个答案:

答案 0 :(得分:0)

我认为你忘记了数据库表,你没有创建这个,这就是为什么每个变量都是非持久性的。

答案 1 :(得分:0)

升级的Rails现在可以使用了。不知道为什么。