New Rails应用程序从旧表中绘制一些数据

时间:2011-10-24 21:32:07

标签: ruby-on-rails-3 legacy-database

我有一个新的rails应用程序需要从名为“Doo_dad”的遗留表中访问数据,其中一个名为“id”的自动增量主键和一个名为“name”的字符串字段。

所以我创建了一个名为 app / models / doodad.rb 的新模型文件,如下所示:

class Doodad < ActiveRecord::Base
   set_table_name "Doo_dad"
end

当我加载Rails控制台时,我可以访问我的Rails生成的模型,但是我看不到类

> rails console
irb> Doodad.class
NameError: uninitialized constant Doodad
(from (irb):1: in `evaluate`

app / models / doodad.rb 中的Class Doodad未加载。这段代码很好,因为当我执行以下操作时:

> rails console
irb> class Doodad < ActiveRecord::Base
irb> set_table_name "Doo_dad"
irb> end
irb> Doodad.class
 => OK
irb> d=Doodad.new
irb> d.name="Uno"
irb> d.save
 => OK no errors

即。当我在 app / models / doodad.rb 的内容中进行猴子修补时,一切都很好,Doodad称为“Uno”已保存到数据库中。

如何让Rails加载连接到旧表的模型类?

1 个答案:

答案 0 :(得分:0)

D'哦!我在 app / models / doodads.rb 中上课了。一旦我将其重命名为 app / models / doodad.rb ,一切都很好。

我猜每个文件的一个模型类的约定与Rails模型文件命名约定(filename = classname.underscore +“。rb”)是绝对“必须”才能使其工作。