2012-02-28 8 views
0

アクティブなレコード内にデータを設定するのに奇妙な問題があります。 メソッドの中にデータを設定しようとすると、何も影響しないようです。メソッド内でデータを設定するレール

ここに私のクラスでは、えっ、クラスのような単純な

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 

..私はちょうど、画面上のデータを吐き出していシリアライズをテストする

..私はBLOCK2のようBLOCK1に同じことを見ることを期待したい。.. 方法が設定されます返品ポリシー.. 最初のoption.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

+0

私はhttp://tmonrails.wordpress.com/2009/08/05/ruby-setter-and-getter-methods/ – baash05

+0

でコードを作成していました。自己。答えです。 – baash05

関連する問題