「id」という自動インクリメントの主キーと「name」という文字列フィールドを使用して、「Doo_dad」というレガシーテーブルのデータにアクセスする必要がある新しいRailsアプリがあります。
そこで、 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にレガシーテーブルに接続するモデルクラスをロードさせるにはどうすればよいですか?