在Ruby中的类声明中将值传递给父级

时间:2012-08-18 05:07:20

标签: ruby

我正在和Jim Weirich一起观看截屏视频,他开始做这样的事情:

class Subuser < User("Type")
end

Ruby是否允许您在定义父类时传递参数?我无法想出一个实际可行的例子。

1 个答案:

答案 0 :(得分:7)

你可以通过声明一个接受参数并返回一个类的方法User来做到这一点:

class Admin
end

class Client
end

def User(arg)
  case arg
    when :admin
      Admin
    when :client
      Client
  end
end

class Subuser < User(:admin)
end

Subuser.superclass
# => Admin