5

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

class Subuser < User("Type")
end

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

4

1 回答 1

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
于 2012-08-18T05:40:32.480 回答