使用哈希

时间:2015-08-27 19:10:34

标签: ruby

我正在定义一个类,其构造函数采用一个哈希的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>

我犯了什么错误?

1 个答案:

答案 0 :(得分:4)

我发现了。

def new (f = {})应为def initialize (f = {})