2011-03-03 12 views
6

पर चल रहे रेल एप्लिकेशन पर रूबी से एक एमएसएसएलएल डेटाबेस से कनेक्ट करना मेरे पास एक ऐसी स्थिति है जहां मैं एक वेब ऐप बनाने की कोशिश कर रहा हूं जो तालिका में रिकॉर्ड्स की कुल गणना लेता है और इसे स्क्रीन पर आउटपुट करता है। सरल सही लगता है ...?उबंटू

मेरी मुख्य समस्या यह है कि डीबी मैं देखना चाहता हूं कि एमएसएसक्यूएल है। मैंने रेल से इस तरह के डीबी कनेक्शन को स्थापित नहीं किया है, इसलिए मुझे आशा थी कि कोई मुझे सही दिशा में इंगित कर सके।

मेरा आरओआर आवेदन उबंटू सर्वर पर लाइव होगा (और ओएसएक्स तेंदुए प्रणाली पर विकसित किया जा रहा है)।

संपादित करें:

  • मैं कि MSSQL DB एसक्यूएल सर्वर 2005 पर चल रहा है और एक विंडोज़ सर्वर वातावरण पर है स्पष्ट करना चाहिए।

  • मैं wiki.rubyonrails.org गाइड बाहर की जाँच की कोशिश की लेकिन साइट नीचे (दुखी) होने के लिए

धन्यवाद लगता है!

उत्तर

8

यह Stackoverflow सवाल मदद कर सकता है: Rails & MSSQL 2008 - Will We Hit Barriers?

मूल रूप से आप एक MSSQL डेटाबेस एडाप्टर (बल्कि MySQL या Postgres है कि ज्यादातर ट्यूटोरियल आप के माध्यम से कदम से) स्थापित करना होगा, और उचित रूप से अपने database.yml कॉन्फ़िगर करें:

http://rorblog.techcfl.com/2008/04/14/ruby-on-rails-connection-to-sql-server/

http://the-banana-peel.saltybanana.com/2008/06/connecto-to-microsoft-sql-server-from.html

http://wiki.rubyonrails.org/database-support/ms-sql (हालांकि रेल विकि के समय में नीचे लग रहा है लेखन)

पीएस मुझे लगता है कि MSSQL सर्वर किसी भिन्न Microsoft सर्वर पर किसी स्थान पर चल रहा है।

+0

हाँ क्षमा करें मैंने इसे स्पष्ट नहीं किया। यह एक विंडोज सर्वर पर चल रहा है MSSQL 2005 है। गाइड के लिए धन्यवाद, मैं उन्हें देख लूंगा! (हां विकी नीचे है और थोड़ी देर के लिए रहा है, मुझे उम्मीद थी कि इसकी ज़रूरत होगी जो मुझे चाहिए, लेकिन इसे प्राप्त करने में सक्षम नहीं है या घंटों के लिए कैश की गई प्रतिलिपि ... उदास) –

0

मेरे पास एक स्टैब होगा, और कहें कि आपको शायद ओडीबीसी के माध्यम से एक mssql डीबी से कनेक्ट करने की आवश्यकता होगी। ऐसा कुछ रत्न लगता है जो ऐसा करते हैं। उम्मीद है कि उनमें से एक को आपको सही रास्ते पर रखने के लिए दस्तावेज़ होंगे।

ODBC rubygems

0

मैं DBI और ODBC के साथ अगली कड़ी का इस्तेमाल किया और यह काम कर रहा है।

require "dbi" 
require "sequel" 
Sequel.datetime_class = DateTime 
p "testing dbi" 
# to setup a DSN, Start->Settings->CtlPanel->AdminTools->DataSources 
conn = DBI.connect('DBI:ODBC:dsn') 
p conn.connected? 
p conn.select_one("SELECT @@VERSION") 
conn.disconnect 
p "testing sequel" 
db = Sequel.odbc('(odbc_dsn_goes_here)', :db_type=>'mssql') 
db.fetch("SELECT TOP 2 * FROM TABLE") do |row| 
    p row 
end 
2

एक उदाहरण पर एक नजर डालें मैं कैसे उल्लेख actionrecord-sqlserver एडाप्टर here

उपयोग करने के लिए आप रेल मॉडल के साथ मैपिंग का उपयोग करें और ActiveModel सहायकों का उपयोग कर सकते पर कर दिया है।

0

मैं tiny_tds साथ activerecord-sqlserver-adapterका इस्तेमाल किया और यह काम करता है!

यहां डेटाबेस है।YML

development: 
    adapter: sqlserver 
    username: 'user' 
    password: 'secret' 
    dataserver: 'dbserver_name\instance_name' 
    database: 'dbname' 
    appname: 'my app name' 
+0

सलाह: यदि आप उपयोग कर रहे हैं रेल 5, इस टिप्पणी को लिखने के समय एसक्यूएल सर्वर 2005/2008 का समर्थन करने के लिए उस मणि को स्थापित करने का कोई तरीका नहीं है। – tommyalvarez

0

एक मणि active-record-sql-adapter आप ActiveRecord के माध्यम से एक एसक्यूएल सर्वर डाटाबेस को कनेक्ट करने देता है कहा जाता है। तब आप अपने वर्गों की तरह तो

class Product < RemoteDB 
    self.table_name ... 
end 

ध्यान दें कि क्रम में (आपके मामले में 2005) एसक्यूएल सर्वर के पिछले संस्करणों से कनेक्ट करने के लिए कनेक्शन के वारिस है की तरह

class RemodeDB 
    establish_connection(:remote_db) #<= 
    self.abstract_class = true # to avoid Rails' no associated model exception 
end 

कुछ कर सकते हैं, आप की आवश्यकता होगी मणि का एक पुराना संस्करण जो रेल के आपके वर्तमान संस्करण के साथ संगत नहीं हो सकता है।