2009-05-09 7 views
0

私は自分のクラスにHTTPartyを使用していますので、default_paramsメソッドを使いたいと思います。しかし、初期化を使ってクラスをインスタンス化するときに属性を設定できるようにしたいと考えています。attr_accessor属性をクラス内(ただしメソッドの外側)で呼び出す方法はありますか?

class MyClass 
    include HTTParty 

    attr_accessor :param1, :param2 

    # This or @param1 doesn't work. 
    default_params :param1 => self.param1, :param2 => self.param2 

    def initialize(param1, param2) 
    self.param1 = param1 
    self.param2 = param2 
    end 
end 

私が代わりに

m = MyClass.new 
m.param1 = 'hey' 
m.param2 = 'hello' 

m = MyClass.new('hey', 'hello') 

を行うことができます。しかし、私はdefault_paramsと属性を使用したいと思います。この方法これどうやってするの?

答えて

1

Githubレポからthis example fileinitializeメソッドを見てください。以前はHTTPartyを使っていませんでしたが、これはあなたの後ろにあるようです。

また、あなたの例では、クラスメソッドとインスタンス変数が混在しているようです。

1

Rubyには、メソッド宣言の構文があります。

class MyClass 
    attr_reader :param1, :param2 
    def initialize(param1 = "default", param2 = 5) 
    @param1, @param2 = param1, param2 
    end 
end 

MyClass.new.param2 
# => 5 

私はHTTPartyを使用したことがない、と私はdefault_paramsメソッドが何をするかわからないので、これはあなたが探しているものである場合、私は知りません。

+0

ありがとうございます.HTTPartyとdefault_paramsは本当にこの質問に関係していません。クラス内の属性にどのようにアクセスできるかを知る必要がありますが、メソッドの外部にはありません。 –

関連する問題