Настраиваемое отображение таблицы с драгоценным камнем сиквела
Крутятся мои колеса. Как можно указать пользовательское сопоставление таблицы с гемом сиквела?
Я сделал следующее
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