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