Ich befolge ein Tutorial, um die Datenbank abhängig von der Subdomain zu ändern, die Subdomain muss der Name einer vorhandenen Datenbank sein, mit der das System wie in this tutorial um 15:30 Minuten verbunden wird und funktioniert ziemlich gut, Das Problem kommt, wenn auf das System zugegriffen wird mit einer Subdomain, deren Datenbank nicht existiert, zeigt mir den folgenden Fehler: Cannot open database "another_database" requested by the login. The login failed
und die Anzeige des Fehlers erlaubt keinen Zugriff auf das System, unabhängig davon, ob es mit dem Namen zugegriffen wird eine vorhandene Datenbank in der Subdomäne, es sei denn, der Rails-Server wird neu gestartet.Fehler beim Versuch, die Datenbank zu ändern
Dies ist mein Code in meiner Application:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :connect_to_database
def connect_to_user_database(name)
config = ActiveRecord::Base.configurations["development"].merge("database" => "#{name}")
ActiveRecord::Base.establish_connection(config)
#auth = name
#raise auth.to_yaml #podemos ver los datos que nos ofrece el parametro
end
private
def connect_to_database
connect_to_user_database(request.subdomains(0).first)
end
end
Aus Sicherheitsgründen und um Fehler zu vermeiden, sollten Sie überprüfen, ob die Subdomäne vor 'connect_to_database' gültig ist. – wesley6j
@ wesley6j danke für die Antwort, aber wie kann ich überprüfen, ob die Datenbank existiert? –
Wenn Sie eine Liste von Subdomains haben, die Sie verwenden möchten, speichern Sie das Array irgendwo in Ihrer Codebasis oder Konfigurationsdatei. – wesley6j