一覧表示を作成するにはindexアクションを使用します。
前チャプターまでで、フォームから記事を投稿し、投稿した内容を表示させることができるようになりました。
しかしフォームからどんどん記事を投稿しても次の画面で表示されるのは、たった今投稿した記事のみです。
これは、showアクションのコードの
<p><strong>
def show<br>
@article = Article.find(params[:id])<br>
end
</strong></p>
で、createアクションでモデルを使って保存したパラメータの中から、たった今投稿した記事のidを取得して、そのidに紐づいた記事を表示させているからです。
実際は、投稿した数だけ記事のデータは保存されています。
では、一覧記事を表示させるにはどうしたら良いのでしょうか。
データの一覧はindexアクションで表示させることができます。
articlesコントローラにindexアクションを追加してみましょう。
このまま、一覧を表示させようとしても、表示を担当しているviewsファイルにはindexアクションと同名のファイルがない為エラーになってしまいます。
viewsファイルにindex.html.erbファイルを作成し、ブラウザで表示した時に確認できるように適当な中身を書いて保存しておきましょう。
ブラウザでindex.html.erbへアクセスするには・・・何度もでてきた$ rake routesを使います。
今回は中央のURI Patternを確認します。
Controller#Actionは、articles#indexです。articles#indexに対応したURIパターンを確認します。
今回表示させたいarticles#indexのURIパターンは/articlesということがわかります。
※(,:format)は今のところは無視しておいてください。
ここでURIを使用して目的のページへアクセスする方法を確認しておきましょう。
サーバーを起動させて、ブラウザを別タブで開いたときのURLをドメインと呼びます。
このドメインにURIを追加すると目的のページへアクセスすることができます。
では、ドメインに/articlesを追加してみましょう。
index.html.erbファイルの中身が表示されています。
目的のページへアクセスすることができました!
無料ビデオ講座のお知らせ
Skillhub [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。