我正在定义一个类,其构造函数采用一个哈希的param,并且可能有20-30个key:值。对于所有这些键,我不想创建单独的实例变量。相反,希望将所有内容保留在@filter
中,并在该类中的任何位置使用它。
class Card
attr_accessor :filter
def new (f = {})
@filter = f
end
def say_hello
"Hello #{@filter[:xyz]}"
end
end
当我尝试按如下方式实例化此类的对象时,
c = Card.new ({a: :b, c: :d, xyz: :klm})
然后我收到错误
undefined method `a=' for #<Card:0x007fafb1cc51d8>
我犯了什么错误?
答案 0 :(得分:4)
我发现了。
def new (f = {})
应为def initialize (f = {})
。