在 Rails 中为 SQL 服务器中存在的现有 table 名称创建 class 名称

Create class name in Rails for existing table name present in SQL server

我想在 rails 中使用 SQL 服务器 table。
假设我在 SQL 服务器中已经有一个 table T_SDF,我想从这个 table.

中获取所有数据

如何在 Rails 中创建模型或 class?

我正在使用 Rails 版本 3.2.9 和 Ruby 版本 1.9.3。

我相信你正在寻找 self.table_name = 文档:http://apidock.com/rails/v3.2.8/ActiveRecord/ModelSchema/ClassMethods/table_name%3D

示例:

class SomeModel
  self.table_name = 'T_SDF'
end

更新

为现有 table 生成模型。

运行rails g model t_sdf。我们不想向它传递任何参数,因为 table 已经存在。

准备迁移

前面的命令应该生成了一个文件,例如:db/migrate/20150415071801_create_t_sdfs.rb.

我们将要更新它以创建 table 与它已经存在的完全一样。 在 MySQL 我倾向于执行命令 show create table {{table_name}} 在 SQL 服务器中,您应该能够按照此处的说明进行操作:show create table tablename (how do i do this in sql server)?

获得创建 table 的字符串后,将字符串粘贴到下面示例中的执行语句中。

class CreateTSdfs < ActiveRecord::Migration
  def up
    # We wrap the command in an unless statement because we
    # don't want to run it on production. However, it is important for
    # the table to be created for developers working on local databases.
    unless table_exists?('T_SDF')
      execute "paste the create table sql statement here"
    end
  end

  def down
    remove_table 'T_SDF'
  end
end

准备模型

你应该只需要设置模型文件的table名称。 app/models/t_sdf.rb

class TSdf
  self.table_name = 'T_SDF'
end