[ruby-list:47021] Re: [Q] instance_eval 中でのクラス変数のアクセス

From: swec@...
Date: 2010-04-15 06:57:57 UTC
List: ruby-list #47021
東(質問者)です。

> Module#class_variable_getではどうでしょう。
> p c.class.class_variable_get(:"@@class_var1")

ありがとうございます。
できました。

しかし、苦しい回避策といった感が否めませんね。
しかたないのでしょうか。

また、クラス変数を操作する場合は以下のようになるのですよね。

# 他の値を加える。
tmp = c.class.class_variable_get(:"@@xxxx")
tmp += other_value
c.class.class_variable_set(:"@@xxxx", tmp)

# メソッドをよぶ
c.class.class_variable_get(:"@@xxxx").my_method( "arg" )


さて、実際のプログラムでは、instance_evalブロック中でさらにerbを
使おうと考えていまして、テンプレート中に c.class.class_variable_get(:"@xxxx")を
書かせるのは、ちょっとどうかなという感じがします。


-- 
ひろひと

In This Thread