Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 新Rails应用程序从旧表中绘制一些数据_Ruby On Rails 3_Legacy Database - Fatal编程技术网

Ruby on rails 3 新Rails应用程序从旧表中绘制一些数据

Ruby on rails 3 新Rails应用程序从旧表中绘制一些数据,ruby-on-rails-3,legacy-database,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 app/models/Doodad.rb中的类Doodad未加载。这段代码很好,因为当我执行以下操作时: > rails

我有一个新的rails应用程序,它需要访问一个名为Doo_dad的旧表中的数据,该表具有一个名为id的自动递增主键和一个名为name的字符串字段

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

class Doodad < ActiveRecord::Base
   set_table_name "Doo_dad"
end
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
i、 e.当我在app/models/doodad.rb的内容中打补丁时,一切正常,名为Uno的doodad被保存到数据库中

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

D'oh!我在app/models/doodads.rb中上课。一旦我把它重命名为app/models/doodad.rb,一切都很好


我想每个文件一个模型类的约定与Rails模型文件命名约定filename=classname.underline+.rb是实现这一点的绝对必要条件

什么错误?类似于发生的事情通常是一个有用的诊断工具。该表是否显示在schema.rb中?NameError:未初始化常量dooda该模式不在schema.rb中,但我不希望它出现,因为我没有为它创建迁移。就我所知,schema.rb不包含任何模型类中定义的任何符号。
> 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