我正在为我的班级使用HTTParty,我想使用default_params方法。但是,我也希望能够在初始化实例化我的类时设置属性。
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('hey', 'hello')
而不是
m = MyClass.new
m.param1 = 'hey'
m.param2 = 'hello'
但我想将这些属性与default_params一起使用。我怎么能这样做?
答案 0 :(得分: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
方法的作用,所以我不知道这是否是您正在寻找的。 p>
答案 1 :(得分:1)
从Github回购中查看this example file中的initialize
方法。我之前没有使用过HTTParty,但这看起来就像你追求的那样。
此外,从您的示例中,您看起来正在混淆类方法和实例变量。