如何在轨道上的红宝石中接受这些参数?

时间:2012-08-09 23:14:16

标签: ruby-on-rails ruby

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

假设我的方法名为custom_method

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

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

但我如何捕获第二个param是一个哈希

1 个答案:

答案 0 :(得分:2)

更简单的解决方案可能是:

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

更丰富的函数调用,但缺点很明显:方法签名丢失了信息。