Настраиваемое отображение таблицы с драгоценным камнем сиквела

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

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

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" в конструкторе. Я также пробовал set_dataset('myschema.MyModelTable'), но безуспешно.

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

2 ответа

Решение

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

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

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

Сделай это:

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

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

Другие вопросы по тегам