我正在遵循制作对象关系映射的指南。 但该指南假设我知道 gem SQLite3 及其库。它为我提供了这段代码,这是多次调用new
方法之一。我找到了一些关于它的文档,指出"它创建了一个新的数据库对象"......这在抽象层面上是有意义的。但是我不记得数据库对象是什么样子的,有人可以给我一个示例来说明这将返回什么吗?
def init_object_from_row(row)
if row
data = Hash[columns.zip(row)]
new(data)
end
end
它只是一个哈希吗?
从实例方法内部调用new
会创建实例方法中包含的任何类的新对象。例如,假设该方法位于Foo
类中。
class Foo
def init_object_from_row(row)
if row
data = Hash[columns.zip(row)]
new(data)
end
end
end
这将返回使用data
哈希作为其参数的Foo
类的新实例。这不是 sqlite3 所特有的;这只是 Ruby 的一个特征。