Пользовательское сопоставление таблиц с помощью Sequel gem

Прокрутил мои колеса. Как можно указать пользовательское сопоставление таблиц с гем-сиквелом?

я сделал следующее

init.rb

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

Namespace::MyModel.db = OTHER_DB

МояМодель.rb

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

Он жалуется на «myschema.MyModelTable» в конструкторе. Я также безуспешно пробовал set_dataset('myschema.MyModelTable').

Документы кажутся немного непрозрачными в отношении того, как это сделать.


person bgura    schedule 09.05.2016    source источник


Ответы (2)


Я решил это с помощью следующего кода

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

Дополнительные примеры можно найти в тестах здесь

person bgura    schedule 09.05.2016

сделай это:

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

есть два подчеркивания. это соглашение, которое использует адаптер Sequel tinytds для указания схемы. см. строку 194: https://github.com/jeremyevans/sequel/blob/master/lib/sequel/adapters/tinytds.rb

person v623    schedule 02.02.2017