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?

War es hilfreich?

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
scroll top