20444


Ruby on Railsで開発をしています。  
rails g modelコマンドを利用してmigrateファイル、modelなど一気に生成しました。  
その後、modelの名前だけを利用する必要があり、変更しましたが、こうした場合、modelとDBのTableの名前が合わないようになります。  
それで、modelからTableへの連結ができるのかが心配で接続のテストがしたいんですが、どうテストできれば教えてください。できればサンプルのコードがあれば嬉しいです。  
そもそもmodelとmigrateファイルなどはどのような関係がありますか？同じ名前で生成される理由も教えていただければと思います。


CC BY-SA 3.0
2015-12-29T01:59:23.257
20442
2015-12-29T04:44:30.900
10710
question
ruby-on-rails mysql rubymine
RailsでDBへの接続確認する方法を教えてください。


Railsでは、モデル名からテーブル名を判断して接続しています。  
モデル名はテーブル名の単数形のキャメルケースになります。  
例えば、 `user_permissions` というテーブルがあった場合、モデルは `UserPermission` となります。

モデル名とテーブル名が一致していない場合、モデルに明示的にテーブル名を設定する必要があります。  
`UserPermission` というモデルで `permissions` というテーブル名を使いたい場合、以下のようにモデルに書きます。

[code]

    def UserPermission < ActiveRecord::Base
      self.table_name = 'permissions'
    end
    
[/code]

接続のテストですが、 `rails console` を使うと楽です。  
railsのプロジェクトのディレクトリで、 `rails c` と打つとコンソールが起動しますので、そこでテストをしてください。  
`UserPermission` に接続する場合は以下の様なかたちで確認できます。

[code]

    $ rails c
    [1] pry(main)> UserPermission.all
    
[/code]


CC BY-SA 3.0
2015-12-29T04:44:30.900
20444
2015-12-29T04:44:30.900
7616
20442
answer