映画の紹介サイトを作成しよう
これまでプロジェクトの制作を通して基本的なMVC(Model, View, Controller)の概念や、CRUDの実装を学びました。ここから先はデータベースに関する知識を深めていきます。
そもそもデータベースにはさまざまな種類があり、データベースへの命令にはrubyとは別の言語(SQL)が使われています。ただ、Railsの場合はどのデータベースを使ったとしても、Railsで用意されているメソッドなどを使って簡単にデータベースを扱うことができます。これは「Active Record」という機能のおかげで、Railsというフレームワークの大きな強みのひとつと言えます。例えば、これまでの演習でも使ってきた.find
も、Active Recordが用意しているメソッドです。本章では、映画の紹介サイトの制作を通してActive Recordについて学んでいきましょう。
まずこれまでのおさらいをしながら、以下に取り組みましょう。
-------------------------------------------------------
1)新たに「Movielog」という名前で、プロジェクトを作成します。データベースは「postgresql」を使用します。
databaseを指定してrails newするには? データベースとmodelを理解する
2)このプロジェクトでhamlが使えるように設定します。bootstrapも導入しておきましょう。
hamlの導入方法 hamlを使ってみよう
bootstrapの導入方法 bootstrapの導入方法
3)home controllerと対応するview(index.html.haml)を作成し、localhost:3000にアクセスしたときにこのページが表示されるようにroutesを設定します。
root_toの設定方法 root_toを指定しよう
4)データベースにテーブルを作成します。項目は以下の通りです。
・works
テーブル(映画作品を登録するためのテーブル)
タイトル (カラム名:title、データ型:string)
リリース年 (カラム名:release、データ形:string)
主演 (カラム名:starring、データ型:string)
説明文 (カラム名:description、データ型:text)
・directors
テーブル(映画監督を登録するためのテーブル)
監督名 (カラム名:name、データ型:string)
出身国 (カラム名:country、データ型:string)
migrationファイルとmodelを作成する modelの仕組み
5)それぞれのテーブルを扱うためのmodelを準備します。
6)directorとworkをそれぞれ登録・参照・編集・削除できるようにroutesを設定し、controllerとviewを作成します。部分テンプレートやbefore_actionを活用し、DRYなコードに仕上げてください。
crudを理解する crudの実装1 crudの実装2
部分テンプレート・before_action dryなコードにするために
-------------------------------------------------------
データベースにdirectorやworkを登録できましたか?編集や削除もできるかブラウザ上でテストします。
もし曖昧な部分があれば、これまでの演習をおさらいましょう。