1

我正在尝试使用 rails 对遗留数据库进行建模。我已经成功地建模了几个表而没有问题,但是,我有一个我无法建模。这是一个有效的方法:

mysql> describe symbols;
+---------------------+---------------+------+-----+---------+-------+
| Field               | Type          | Null | Key | Default | Extra |
+---------------------+---------------+------+-----+---------+-------+
| symbol              | varchar(40)   | NO   | PRI |         |       |
| company_name        | varchar(40)   | YES  |     | NULL    |       |
| company_description | varchar(2048) | YES  |     | NULL    |       |
| exchange            | varchar(40)   | NO   | PRI |         |       |
+---------------------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

这是模型代码:

class Symbols < ActiveRecord::Base
end

这是 Rails 控制台输出:

>> Symbols
=> Symbols(symbol: string, company_name: string, company_description: string, exchange:      string)
>> Symbols.count
=> 5980

现在这是不起作用的表:

mysql> describe cgp;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| symbol | varchar(40) | NO   | PRI |         |       |
| val    | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

这是模型代码:

class Cgps < ActiveRecord::Base
  set_table_name "cgp"
  set_primary_key "symbol"
end

这是 Rails 控制台输出:

=> Cgps(Table doesn't exist)
>> Cgps.count
ActiveRecord::StatementInvalid: Mysql::Error: Table 'smdata.cgp' doesn't exist: SHOW FIELDS FROM `cgp`

我难住了。我也尝试过尝试将类称为“Cgp”而不是“Cgps”的变体。我已经多次破坏和重建模型,但均未成功。我还有其他工作得很好的桌子。这个表不行。这么简单的表,会出现什么问题?我成功地覆盖了复数形式并处理了没有“id”列的事实。欢迎任何想法!

4

0 回答 0