1

わかりましたので、このようなパラメーターを受け入れるメソッドを宣言したいと思います

私のメソッドの名前がcustom_methodだとしましょう

@variable.custom_method(Profile, :as => @user)

私のメソッドは変数 @user をキャッチし、@user.profile

しかし、ハッシュである2番目のパラメータをキャッチするにはどうすればよいですか

4

1 に答える 1

2

より簡単な解決策はおそらく次のとおりです。

def custom_method(association, args)
  obj = args[:as] or fail("Missing argument :as => obj")
  obj.send(association.name.underscore)
  ...
end

関数の呼び出しはより充実していますが、欠点は明らかです。メソッド シグネチャで情報が失われます。

于 2012-08-09T23:21:02.753 に答える