9
votes

Ruby sur rails - Comment récupérer des chaînes de connexion

Y a-t-il des moyens de récupérer la chaîne de connexion de base de données où mon rubis est connecté? Ce que je voudrais obtenir est le:

1) Nom de la base de données où le rubis est connecté 2) Le nom d'utilisateur du serveur SQL 3) mot de passe du serveur SQL 4) Nom du serveur

Je veux le stocker dans des variables de session.

(I'am utiliser MS SQL Server.)

aide s'il vous plaît! merci!


2 commentaires

Je ne vais même pas demander pourquoi vous voudriez stocker ces variables de session. D'accord. Pourquoi voulez-vous les stocker en session?


Parce que je dois appeler une application CGI, cette CGI doit se connecter à la base de données où mon rubis est connecté. Notez que chaque client a des chaînes de connexion différentes, la chaîne de connexion de l'application CGI doit donc être dynamique en fonction de la chaîne de connexion Ruby. J'espère que vous pourrez m'aider avec celui-ci. Merci


5 Réponses :


0
votes

Ces valeurs sont toutes stockées dans le fichier config / base de données.yml , mais afaik Vous ne pouvez pas accéder à ces valeurs comme variables de votre contrôleur.


1 commentaires

Votre application pourrait lire / interpréter le fichier config / base de données.yml. Il aurait alors toutes les informations à faire avec comme il le souhaitait.



0
votes

base de données: activeCord :: base.connection.current_database

Vous pouvez également faire des regex fantaisistes avec les éléments suivants: xxx

mais Oui, c'est une idée terrible.


1 commentaires

Utilisation de ActiveRecord :: base.connection.InSpect montre le nom d'utilisateur et le mot de passe, mais j'ai des problèmes dans les regexs, je ne peux pas me permettre de laisser le mot de passe seulement



6
votes

Vous pouvez accéder à toutes les propriétés décrites dans votre base de données.YAML comme ceci: xxx


1 commentaires

Cela a parfaitement travaillé pour moi. J'avais besoin d'écrire une tâche de râteau que mysqldump'ed Notre base de données de production et que je ne voulais pas avoir à coder de manière rigide les chaînes de connexion en dehors du fichier de base de données.yml.



11
votes

J'irais avec activerecord :: base.connection_config qui renvoie hachage avec des options pour ActiveRecord 3.


0 commentaires

0
votes

Il y a un connace_db_config code> qui retourne activerecord :: DatabaseConfigurations :: URLConfig code> objet, qui ressemble à ce xxx pré>

appelant URL code> vous donnera votre URL de connexion: P>

> "#{ActiveRecord::Base.connection_db_config.url}/#{ActiveRecord::Base.connection_db_config.database}"
=> "postgresql://postgres@localhost:5432/your_project_development"


0 commentaires