我想弄清楚如何從數據庫中提取數據,而不需要在每個ruby文件的頂部放置連接字符串。如何通過database.yml(或其他)通過ruby/sinatra引用tiny_tds連接?
我正在通過一個小的Sinatra應用程序來學習ruby的基礎知識,我將它們從MSSQL數據庫中提取數據。
到目前爲止,我已經成功地創建通過使用下面的代碼結構,在每個文件的頂部從MSSQL數據庫顯示數據的各種簡單的再培訓局網頁: -
<% client = TinyTds::Client.new(:username => 'name', :password => 'password', :dataserver => 'hostname', :database => 'database') %>
<% data = client.execute("SELECT * from tablename") %>
從書籍,指南和在線教程我發現基於很多配置來處理PostgreSQL或MySQL數據庫在我看來,我需要創建一箇中央文件來存儲我的連接數據(如database.yml文件),然後引用某處/不知何故在我的應用程序。
這是正確的,我應該在我的main.rb文件中這樣做,以便我的每個.erb文件不需要連接字符串,還是必須仍然引用每個.erb文件中的數據庫也?
我注意到引用創建數據庫配置變量如: -
db_config = YAML.load(File.Open("/path_to_file/database.yml")) [ENV['RAILS_ENV']]
但顯然似乎適合Rails應用。
我可以爲我的sinatra驅動的'app'做類似的事嗎?
謝謝。
看看這個:[Sinatra Config File](http://www.sinatrarb.com/contrib/config_file.html)。這可能是因爲你只是想自己嘗試這個學習,只是說,然後我相信你會在下面得到更詳細的答案。順便說一句,'YAML'也有'load_file'方法,我不確定爲什麼所有的Rails應用程序都繼續使用'load'和'File.open'。 – iain
謝謝伊恩,我已經閱讀了你提供的鏈接,這很好理解。我不知道它是如何幫助我的,因爲我還沒有設置一個配置文件,然後從它拉動值創建數據庫連接之間的飛躍...... – lad33
...我想我在試圖要說的是,好吧,我可以將我的數據庫連接設置放入一個config.yml文件中,然後在我的main.rb文件中引用它。然後如何創建客戶端= TinyTds.Client.new(......),並在main.rb應用程序文件中執行? – lad33