1

好的,所以我想声明一个可以接受这样的参数的方法

假设我的方法名为 custom_method

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

我的方法应该捕获变量@user 并调用@user.profile

但是我如何捕获作为哈希的第二个参数

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 回答