ruby-on-rails - 使用现有的 SQL Server 数据库和 Ruby on Rails

标签 ruby-on-rails ruby sql-server ruby-on-rails-3

我正处于学习 Ruby 的早期阶段。我真的不知道如何使用 ruby​​ 上充满表格和数据的现有数据库。我拥有或在 Internet 上找到的每份指南、每篇文章总是使用迁移功能创建新的。

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

最佳答案

你很幸运, friend 。我的第一个 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 :)。

关于ruby-on-rails - 使用现有的 SQL Server 数据库和 Ruby on Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15262877/

相关文章:

ruby-on-rails - Ruby:将数组或哈希转换为 activerecord 关系

sql-server - SSRS : String concatenation with nullable strings

ruby-on-rails - Rails - Model.all.to_json 没有放置所有 Devise 属性

sql-server - T-SQL:事务和 try-catch block 中的 ALTER VIEW 错误

python - SQLAlchemy 无法自动加载 mssql 临时表

java - 从字符串模式中提取城市名称的正则表达式

ruby-on-rails - FactoryGirl Rspec 模型测试失败

ruby-on-rails - 如何防止 Delayed_Job 任务失败并显示 "execution expired"

ruby-on-rails - 使用rspec测试Rails的嵌套属性

ruby - apn_on_rails 多个应用程序出错