각 루비 파일의 맨 위에 연결 문자열을 배치 할 필요없이 데이터베이스에서 데이터를 가져 오는 방법을 찾으려고합니다.ruby / sinatra에서 tiny_tds 연결을 database.yml (또는 기타)를 통해 어떻게 참조 할 수 있습니까?
저는 MSSQL 데이터베이스에서 데이터를 가져 오는 작은 Sinatra 앱을 통해 루비의 기본 사항을 배우고 있습니다.
는 지금까지 각 파일의 맨 위에 다음 코드 구조를 사용하여 MSSQL 데이터베이스에서 데이터를 표시하는 다양한 간단한 ERB 페이지 생성 관리했습니다 : - 책, 가이드에서
<% 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 파일의 데이터베이스를 계속 참조해야하므로 올바른지 확인해야합니다. 또한?
I는 다음과 같은 데이터베이스 구성 변수를 생성에 대한 참조를 언급했습니다 : -
db_config = YAML.load(File.Open("/path_to_file/database.yml")) [ENV['RAILS_ENV']]
하지만 분명히 레일 애플 리케이션에 적합 보인다.
내 sinatra 주도 '앱'과 비슷한 것을 할 수 있습니까?
감사합니다.
[Sinatra Config File] (http://www.sinatrarb.com/contrib/config_file.html)을보십시오. 학습을 위해이 도구를 직접 시험해보고 싶을 수도 있습니다. 말할 수 있으면 아래에서 좀 더 자세한 답변을 얻을 수있을 것입니다. BTW,'YAML'도'load_file' 메소드를 가지고 있습니다. 왜 모든 레일즈 어플리케이션이'File.open'으로'load'를 계속 사용하는지 모르겠습니다. – iain
감사합니다 이안, 나는 당신이 제공 한 링크를 통해 읽어 보았습니다. 나는 그것이 나에게 도움이되는 방법을 모르지만 아직 설정 파일을 설정하고 데이터베이스 커넥션을 생성하기 위해 값을 가져 오는 것 사이에서 도약 할 수는 없다 ... – lad33
... 나는 내가 무엇을 하려는지 생각한다. 말, 좋아, 나는 내 데이터베이스 연결 설정을 config.yml 파일에 넣고 내 main.rb 파일에서 참조 할 수있다. 그렇다면 어떻게 클라이언트 = TinyTds.Client.new (......)를 만들면 main.rb 앱 파일에도 포함됩니까? – lad33