我有一个新的 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中的类 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的内容中进行猴子修补时,一切都很好,并且名为“Uno”的 Doodad 被保存到数据库中。
如何让 Rails 加载连接到旧表的模型类?