如何在ruby中实现这个结果?

如何在ruby中实现这个结果?,ruby,design-patterns,interface,sequel,Ruby,Design Patterns,Interface,Sequel,我正在阅读续集的文档,对以下代码片段中使用的技术感到好奇: class Post < Sequel::Model(:my_posts) (...) end class Post

我正在阅读续集的文档,对以下代码片段中使用的技术感到好奇:

class Post < Sequel::Model(:my_posts)
  (...)
end
class Post

Sequel::Model(:my_posts)
为模型设置数据库表。我特别好奇
模型(:my_posts)
中的括号。我喜欢这个界面,但是我怎样才能做到呢?这有点奇怪。。。似乎
模型
可以作为一种方法调用。。。这是哪种技术?有人能给我举个例子吗?

通常,当您将
与模块或类一起使用时,ruby将尝试在常量中的
之后查找表达式

Example::First => as constant
Example::First() => as method
运行以下代码:

module Example
  class << self
    def First(a)
      puts a
    end
  end

  module First
  end
end

当您使用
类Sequel defined a method
def_model
(请参阅)在任何给定模块上定义模型方法时,这只是在常量
Sequel
引用的对象上调用名为
model
的方法,并将
符号
:my_posts
作为参数传递。该方法可能返回
类的一个实例
类,否则您将得到
类型错误
Example::First(1) # => prints 1