Sequel Modelo set_schema não encontrado
Pergunta
Pode qualquer um voluntário por isso que a classe abaixo falhar?
... src/model/user.rb:18: undefined method `set_schema' for User:Class (NoMethodError)
Eu olhei no Sequel-3.0 lib / pasta e do método set_schema
é definido em um módulo ClassMethods
.
Eu tenho certeza que a solução é simples. Eu estava pensando que deve funcionar "como é":
require 'sequel'
class User < Sequel::Model(:user)
set_schema do
set_primary_key :id
String :name
end
end
Solução
forma recomendada ...
LOGGER = Object.new()
def LOGGER.method_missing( name, args )
puts "[#{name}] #{args}"
end
Sequel::Model.plugin(:schema) # I worked this out, but I can't find it documented
DB = Sequel.sqlite('sql_test.db', :loggers => [LOGGER] )
unless DB.table_exists?( :user )
DB.create_table :user do
set_primary_key :id
String :name
String :password
String :eMail
end #create_table
end #table exists
class User < Sequel::Model(:user)
Outras dicas
A resposta é para chamar o plug-in para gerenciar esquema. Viz.
require 'sequel'
require 'logger'
LOGGER = Object.new()
def LOGGER.method_missing( name, args )
puts "[#{name}] #{args}"
end
**Sequel::Model.plugin(:schema)** # I still didn't find this documented
DB = Sequel.sqlite('sql_test.db', :loggers => [LOGGER] )
class User < Sequel::Model(:user)
set_schema do
set_primary_key :id
String :name
end
end
Yep Sequel::Model.plugin(:schema)
trabalhou para mim também. não pode vê-lo na documentação e eu estou perplexo quanto ao porquê, pois tenho outro projeto de trabalho que usos set_schema
sem problemas.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow