3

我正处于学习 Ruby 的早期阶段。我真的不知道如何使用现有的数据库,其中包含 ruby​​ 上的表和数据。我在互联网上拥有或找到的每一篇指南、每一篇文章总是使用迁移功能创建一个新的。

但是,在 RoR 上的 SQL Server 中使用现有数据库的步骤是什么?

4

3 回答 3

9

你很幸运,朋友。我的第一个 Rails 项目(7 年前)是针对一个糟糕的 SQL Server 数据库。

根据上述,您需要适当地设置您的 database.yml。但是对于现有的数据库,表名和列名显然不太可能符合 Rails 约定。好消息是您可以覆盖所有这些默认值。以下是这些指令的非详尽列表:

在源自 AR::Base 的模型中,

set_table_name 'actual_table_name'
set_primary_key 'actual_primary_key_name'

在各种关联指令(has_one、has_many、belongs_to)上,有 :foreign_key 键可让您指定外键的名称。

现在,MS SQL Server 允许您做的一件可怕的事情是您可以在列名中嵌入空格。不要害怕,您仍然可以使用 write_attribute("badly named column") 和 read_attribute("badly named column") 按名称引用这些列。您也可以在各种指令中引用它们,如下所示:

validates_length_of "传真号码", :maximum => 17, :allow_nil => true

最后,您可以参考这些名称异常的列生成的隐含方法,如下所示:

self.send('传真号码=', new_fax_number)

显然,您不能将它们称为符号,因为 Ruby 符号中不允许使用空格。

祝你好运,下次我希望你能使用真正的 RDBMS,比如 Informix :)。

于 2013-03-07T07:16:43.343 回答
0

首先,您必须将应用程序设置为用户 sql server 以进行数据库连接。您必须在gemfile中使用 gem for sql server并且必须相应地设置database.yml文件。

database.yml中,在config文件夹中将相同数据库的名称放在该文件的 Development 部分中。

    development:
  adapter: 
  database: db_name_dev
  username: 
  password:
  host: localhost
  socket:
于 2013-03-07T05:20:21.330 回答
0

使用现有服务器。在您的database.yml文件中,您必须指定主机、端口和数据库名称。

`database: <host>:<port>/<database_name>`

例如

development:
  adapter: mysql2
  database: your.mysqlserver.com:1521/project_database
  username: project_user
  password: project_password
于 2013-03-07T07:22:43.490 回答