質問: Ruby on Railsで開発をしています。 rails g modelコマンドを利用してmigrateファイル、modelなど一気に生成しました。 その後、modelの名前だけを利用する必要があり、変更しましたが、こうした場合、modelとDBのTableの名前が合わないようになります。 それで、modelからTableへの連結ができるのかが心配で接続のテストがしたいんですが、どうテストできれば教えてください。できればサンプルのコードがあれば嬉しいです。 そもそもmodelとmigrateファイルなどはどのような関係がありますか?同じ名前で生成される理由も教えていただければと思います。
回答: Railsでは、モデル名からテーブル名を判断して接続しています。 モデル名はテーブル名の単数形のキャメルケースになります。 例えば、 `user_permissions` というテーブルがあった場合、モデルは `UserPermission` となります。 モデル名とテーブル名が一致していない場合、モデルに明示的にテーブル名を設定する必要があります。 `UserPermission` というモデルで `permissions` というテーブル名を使いたい場合、以下のようにモデルに書きます。 ``` def UserPermission < ActiveRecord::Base self.table_name = 'permissions' end ``` 接続のテストですが、 `rails console` を使うと楽です。 railsのプロジェクトのディレクトリで、 `rails c` と打つとコンソールが起動しますので、そこでテストをしてください。 `UserPermission` に接続する場合は以下の様なかたちで確認できます。 ``` $ rails c [1] pry(main)> UserPermission.all ```