2009-05-17 9 views
3

Kann jemand freiwillig erklären, warum die Klasse darunter fehlschlägt?Sequel Modell set_schema nicht gefunden

... src/model/user.rb:18: undefined method `set_schema' for User:Class (NoMethodError) 

Ich habe in der Sequel-3.0 lib/Ordner gesucht und die set_schema Verfahren wird in einem ClassMethods Modul definiert.

Ich bin mir sicher, dass die Lösung einfach ist. Ich dachte, es sollte funktionieren "wie es ist":

require 'sequel' 

class User < Sequel::Model(:user) 

    set_schema do 
    set_primary_key :id 
    String   :name 
    end 
end 
+1

Sie bitte Ihre Frage erneut bearbeiten und Updates, um es stattdessen mehrere Antworten hinzuzufügen. –

Antwort

3

Empfohlene Art und Weise ...

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) 
3

Die Antwort ist das Plug-in für die Schemaverwaltung aufrufen. Nämlich.

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 
1

Yep Sequel::Model.plugin(:schema) arbeitete für mich auch. Kann es nicht in den Dokumenten sehen und ich bin perplex darüber, warum, weil ich ein anderes Arbeitsprojekt habe, das set_schema ohne Aufwand verwendet.

+0

Hallo Joe ... Y Ja, ich schaute über die neue Art und Weise Sequel funktioniert jetzt, es verwendet Plugins für Dinge wie das Schema, etc. Auf der Sequel-Mailing-Liste rieten sie mir, es wie unten gezeigt zu tun. Viel Glück, w. – will

Verwandte Themen