- # Ruby入門 > Ruby on Rails
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文を確認してみることにしました。
長くなったので、続きは次のページで。
- - 関連記事 -
- scaffoldで生成されるviewテンプレート(templates)を日本語表示に変更する
- マイグレーション(rake db:migrate)の確認・Railsカラム生成メソッドとMySQLデータ型の対応表
- Ruby on RailsのSQL文をdevelopment.logで確認
- environment.rbを変更したらサーバー再起動
- NetBeansでのRoR開発手順
- Rails2.0でデータベースの文字化け対策(InstantRails-2.0-win)
- Ruby on Rails ことはじめ