2010-06-18 30 views
5

Có cách nào để truy xuất chuỗi kết nối cơ sở dữ liệu mà ruby ​​của tôi được kết nối không? những gì tôi muốn nhận được là:Ruby on rails - cách truy xuất chuỗi kết nối

1) Tên cơ sở dữ liệu mà ruby ​​được kết nối 2) Tên người dùng của SQL Server 3) Mật khẩu của SQL Server tên 4) Server

Tôi muốn để lưu trữ nó trong các biến phiên.

(Tôi đang sử dụng MS SQL Server.)

Xin vui lòng trợ giúp! cảm ơn!

+0

Tôi thậm chí sẽ không hỏi tại sao bạn muốn lưu trữ các biến này trong các biến phiên. Được. Tại sao bạn muốn lưu trữ chúng trong một phiên? – theIV

+0

vì tôi cần gọi một ứng dụng CGI và CGI này cần kết nối với cơ sở dữ liệu nơi kết nối ruby ​​của tôi. lưu ý rằng mỗi máy khách có các chuỗi kết nối khác nhau, vì vậy chuỗi kết nối của ứng dụng CGI phải được động tùy thuộc vào chuỗi kết nối ruby. hy vọng bạn có thể giúp tôi với cái này. cảm ơn – Jett

Trả lời

0

Các giá trị này đều được lưu trữ trong tệp config/database.yml, nhưng AFAIK bạn không thể truy cập các giá trị này dưới dạng biến từ bên trong bộ điều khiển của mình.

+0

Ứng dụng của bạn có thể đọc/giải thích tệp config/database.yml. Sau đó nó sẽ có tất cả các thông tin để làm với nó mong muốn. –

0

Cơ sở dữ liệu: ActiveRecord::Base.connection.current_database

Bạn cũng có thể làm một số regexs ưa thích như sau:

ActiveRecord::Base.connection.inspect 

Nhưng yeah, đây là một ý tưởng khủng khiếp.

+0

sử dụng ActiveRecord :: Base.connection.inspect không hiển thị tên người dùng và mật khẩu nhưng tôi đang gặp sự cố trong regex, tôi không thể chỉ cho phép nói mật khẩu chỉ – Jett

5

Bạn có thể truy cập vào tất cả các thuộc tính được mô tả trong database.yaml của bạn như thế này:

ActiveRecord::Base.configurations["development"] => 
{"encoding"=>"utf8", "username"=>"foo", "adapter"=>"mysql", "database"=>"bar_development", "host"=>"localhost", "password"=> "baz"} 
+0

Điều này làm việc hoàn hảo cho tôi. Tôi cần phải viết một tác vụ rake mà mysqldump'ed cơ sở dữ liệu sản xuất của chúng tôi, và không muốn phải mã hóa cứng các chuỗi kết nối bên ngoài tệp database.yml. –

5

tôi sẽ đi với ActiveRecord::Base.connection_config trả về băm với các tùy chọn cho ActiveRecord 3.

0

Có vẻ như bạn chỉ muốn kết nối trực tiếp với cơ sở dữ liệu. Bạn có thể làm điều đó với rails dbconsole (xem docs)