Wie trenne ich die Finalisierung in verschiedene Datenbanken in DataMapper?
-
12-12-2019 - |
Frage
Derzeit habe ich in meiner Sinatra + DataMapper-App Folgendes:
require 'data_mapper'
DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/main.db")
DataMapper.setup(:comments, "sqlite3://#{Dir.pwd}/comments.db")
class Recording
include DataMapper::Resource
# ...
belongs_to :user
has n, :comments
end
class User
include DataMapper::Resource
# ...
has n, :recordings
end
class Audience
include DataMapper::Resource
# ...
end
# -------- ITS OWN DATABASE --------
class Comment
include DataMapper::Resource
#...
belongs_to :recording
end
Ich möchte, dass die Kommentarklasse getrennt von den anderen in Kommentare aufgenommen wird.DB.Ich habe mich umgesehen und so etwas gesehen (und zu dem ich meine Situation formatiert habe):
# -------- ITS OWN DATABASE --------
repository(:comments) do
class Comment
include DataMapper::Resource
#...
belongs_to :recording
end
end
Würde das wie geplant funktionieren oder gibt es einen richtigen Weg, dies zu tun?
Lösung
Wir überschreiben die #default_repository_name
methode an unseren Modellen, um dies zu tun:
class Comment
include DataMapper::Resource
def self.default_repository_name
:comments
end
end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow