2012-02-28 56 views
0

我有一個奇怪的問題設置活動記錄內的數據.. 當我試圖設置方法內的數據,它似乎沒有影響任何東西。Rails設置方法內的數據

這裏是我的類

class Option < ActiveRecord::Base 
    serialize :returns_policy_refunds, Array 
    def reloadRefundOptions! 
    @returns_policy_refunds = WebSite.get_refund_options #options array 
    end 
end 

簡單稱爲類吧?

爲了測試序列化,我只是在屏幕上吐出的數據..

[email protected] do |option| 
    - option.returns_policy_refunds = ["wtf"] #just to reset things 

    <b>BLOCK 1</b> 
    = option.reloadRefundOptions! 
    = option.returns_policy_refunds 
    <br> 
    <b>BLOCK 2</b> 
    = option.returns_policy_refunds = WebSite.get_refund_options 
    = option.returns_policy_refunds 

現在..我希望看到在BLOCK1一樣BLOCK2 .. 的方法設置退貨政策.. 我在第一個選項中看到的實際情況.returns_policy_refunds是[「wtf」]

我錯過了什麼?我一定在做錯事,但我不知道是什麼。 有什麼想法?

回答

2

漏下在你的屬性賦值@

class Option < ActiveRecord::Base 
    serialize :returns_policy_refunds, Array 
    def reloadRefundOptions! 
    self.returns_policy_refunds = WebSite.get_refund_options #options array 
    end 
end 

還沒有嘗試過,但是我要說的是option.returns_policy_refunds會從屬性的數據散列通過ActiveRecord的定義。如果您使用@分配類變量,那麼它只是在那裏定義的,並且只能使用屬性讀取器或直接發送來訪問。

+0

沒有快樂..我試過b4,但我現在也試過了。我仍然在輸出中看到WTF。 – baash05 2012-02-28 02:26:17

+0

我在http://tmonrails.wordpress.com/2009/08/05/ruby-setter-and-getter-methods/ – baash05 2012-02-28 02:28:36

+0

上找到了自己的代碼。自。是答案。 – baash05 2012-02-28 02:31:38

相關問題