-1

の戻り値にアクセスしようとしています

 def entries
   return lang # lang is a hash
  end

中身

def initialize
    @lang = Hash.new
    return entries
  end

しかし、空のハッシュを返しています。

コードの最後に、

@query = Book.new
@query.add('sea')
@query.include?("sea")

保存された値を取得するにはどうすればよいですか。だから私は自分自身を呼び出すことができinclude?ます@query。今のところ、未定義のメソッドエラーが発生するためです。

しかし、私がそうするとき-

@query = Book.new
@query.add('sea')
@query.entries.include?("sea")

true を返します。

ありがとう。

4

1 に答える 1

2

問題は、Book.newがエントリを返さないということです。常にブックインスタンスを返します。新しいメソッドをオーバーライドすることはできますが、その場合はブックインスタンスにアクセスできません。最善のオプションは、includeメソッドをエントリに委任することです。

于 2013-02-11T09:26:34.507 に答える