使用Sequel gem自定义表映射

时间:2016-05-09 18:59:04

标签: ruby sequel sequel-gem

旋转我的车轮。如何使用续集gem指定自定义表映射?

我已完成以下

init.rb

OTHER_DB = Sequel.connect(:adapter => 'tinytds', :host => 'host1', :database => 'mydatabase', :user => 'myuser', :password => 'mypassword')

Namespace::MyModel.db = OTHER_DB

MyModel.rb

module Namespace
  class MyModel < Sequel::Model('myschema.MyModelTable')
  end
end

它抱怨了myschema.MyModelTable&#39;在构造函数中。我也尝试过set_dataset(&#39; myschema.MyModelTable&#39;)但没有成功。

文档似乎对如何执行此操作有点不透明

2 个答案:

答案 0 :(得分:1)

我用以下代码解决了这个问题

module Namespace
  class MyModel < Sequel::Model(Sequel.qualify(:myschema,:MyModelTable))
  end
end

可以在测试here

中找到更多示例

答案 1 :(得分:1)

这样做:

class MyModel < Sequel::Model(:myschema__MyModelTable)
end

有两个下划线。这是Sequel的tinytds适配器用于指定架构的约定。见第194行:https://github.com/jeremyevans/sequel/blob/master/lib/sequel/adapters/tinytds.rb