从在Ubuntu上运行的Ruby on Rails应用程序连接到MSSQL数据库

我有一种情况,我正在尝试构建一个Web应用程序,它占用一个表中的记录总数并将其输出到屏幕。听起来很简单......? 我遇到的主要问题是我想看的数据库是MSSQL。我之前没有从Rails建立这种数据库连接,所以我希望有人能指出我正确的方向。 我的RoR应用程序将存在于Ubuntu服务器上(并且正在OSX Leopard系统上开发)。 编辑: 我应该澄清MSSQL DB在SQL Server 2005上运行并且在Windows服务器环境中。 我试过查看wiki.rubyonrails.org指南,但该网站似乎失败了(悲伤) 谢谢!     
已邀请:
这个Stackoverflow问题可能有所帮助:Rails& MSSQL 2008 - 我们会遇到障碍吗? 基本上你需要安装一个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(尽管rails wiki在编写时看不起) 附:我假设MSSQL服务器将在某个单独的Microsoft服务器上运行。     
看一下我在这里使用上面提到的actionrecord-sqlserver适配器的例子 您可以使用rails模型的映射并使用ActiveModel帮助程序。     
我会有一个刺,并说你可能需要通过ODBC连接到mssql DB。似乎有一些宝石可以做到这一点。希望他们中的一个会有文档让你走上正轨。 ODBC ruby​​gems     
这个宝石很棒,很容易设置: https://github.com/rails-sqlserver/activerecord-sqlserver-adapter     
我使用Sequel与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
    
我使用了activerecord-sqlserver-adapter和tiny_tds,它的工作原理! 这是database.yml
development:
  adapter: sqlserver
  username: 'user'
  password: 'secret'
  dataserver: 'dbserver_nameinstance_name'
  database: 'dbname'
  appname: 'my app name'
    
名为active-record-sql-adapter的gem允许您通过ActiveRecord连接到SQL Server数据库。你可以做点什么
class RemodeDB
  establish_connection(:remote_db) #<=
  self.abstract_class = true # to avoid Rails' no associated model exception
end
然后让你的类继承这样的连接
class Product < RemoteDB
   self.table_name ... 
end
请注意,为了连接到早期版本的SQL Server(在您的情况下为2005),您需要一个早期版本的gem,它可能与您当前版本的Rails不兼容。     

要回复问题请先登录注册