好的,所以我想声明一个接受这样的参数的方法
假设我的方法名为custom_method
@variable.custom_method(Profile, :as => @user)
我的方法应该捕获变量@user并调用@user.profile
但我如何捕获第二个param是一个哈希
答案 0 :(得分:2)
更简单的解决方案可能是:
def custom_method(association, args)
obj = args[:as] or fail("Missing argument :as => obj")
obj.send(association.name.underscore)
...
end
更丰富的函数调用,但缺点很明显:方法签名丢失了信息。