2011-03-27 100 views
0

不工作我想創建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新的價值。」我如何使這些值持續存在?我已經在每個方法中打印了值,所以它們在方法內部保留,但由於某種原因不會超出。

@username始終是零或「」當它到達has_not_accurred。 這是爲什麼?如何讓它堅持下去?非常感謝。

我cannont訪問@user當我設置它要麼(GET_USER方法)。我得到一個零實例後下樓,在validateProperty_of

+1

你的問題不清楚,只是一些代碼段,不可能明白的地方,這些碎片是從哪裏來的。你應該把模型和類範圍放在源代碼中,因爲我認爲你在範圍可見性方面有問題,而不是持久性問題。 – megas 2011-03-27 20:31:27

+0

我現在包括模型的相關部分。 – Yuri 2011-03-27 22:15:03

回答

0

升級的Rails,現在它的工作原理。不知道爲什麼。

0

我想你忘記數據庫表,你還沒有創建這一個,這就是爲什麼每一個變量是不可持久的。

+0

你的意思是我沒有創建優惠券表?我有桌子和優惠券可以創建和刪除。我無法通過驗證property_of屬性。 – Yuri 2011-03-27 23:37:04

+0

您是否定義了遷移來添加列?確實是 – megas 2011-03-28 18:54:05

+0

。我搭建了一個帶有所有適當屬性的優惠券類,我一直在使用它。我最終做的是在create方法中設置屬性。但是,這並沒有給我我正在尋找的適當的安全。建議仍然感激。 – Yuri 2011-03-29 04:31:58