Ruby on Railsのデータベースとモデルクラス・MVCの対応関係

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

Windows環境での練習ではありますが、Ruby on Railsでユーザー・ログイン機能付きの旅行日記アプリケーションを制作してみた。
旅行日記のコメントとともに、行った場所(地名)を投稿でき、地名からYahoo地図情報APIを引っ張ってきて、地図を表示するというアプリ。
データベース絡むアプリだと、公開するにはセキュリティとかもう少し勉強が必要だろうなぁ。

スポンサーリンク

Ruby on Railsは、WEBアプリケーション制作用のフレームワークです。
CRUD処理(Create, Read, Update, Delete:SQLのINSERT, SELECT, UPDATE, DELETEに相当)をメインとするようなWEBアプリケーションを、コーディング量が少なく書けるのが魅力と言われています。

RoRを使うと、生のSQL文を書く必要はほとんど無いので、この点はすごく楽。
生のSQL文の代わりに、ActiveRecord::Baseクラスのfindメソッド(クラスメソッド)を多用します。
ActiveRecord::Baseは、Railsのモデルクラスが継承するクラスで、データベースをオブジェクトとして扱い、DBのテーブル名(小文字の複数形)とモデルクラス名(先頭大文字の単数形)が対応する。

ActiveRecordの資料

Rubyist Magazine – RubyOnRails を使ってみる 【第 3 回】 ActiveRecord
Ruby on Rails – ActiveRecord – — ありえるえりあ
Active Record – Wikipedia
Class: ActiveRecord::Base
Rails’ Wiki – ActiveRecord

RailsのDBのテーブル名は、原則的に小文字の複数形であり、モデルクラス名は、DBテーブル名を単数形にして、先頭文字を大文字にしたものとなります。
例を挙げると・・・

DBテーブル名: places
モデルクラス名: Place (place.rb)
コントローラークラス名: PlacesController (places_controller.rb)
ビューフォルダ名: places

という対応となります。()内は、ファイル名です。
モデルと共に、コントローラーとビューに関しても名前が対応するようになっています。
ビューに関しては、placesフォルダ以下に対応するメソッドのテンプレートができる。
places/index.html.erb, places/edit.html.erb など。

DBテーブルに対して操作を行う場合には、findメソッドを駆使するわけですが、実際に発行されるSQL文はどうなっているのだろうか・・・、SQLインジェクション対策は大丈夫だろうか・・・などの心配も多少あったので、実際にRailsアプリで発行されるSQL文を確認してみることにしました。

長くなったので、続きは次のページで。

スポンサーリンク
 
スポンサーリンク