どうも!chuckです。
前回に引き続き、RailsでWebアプリケーションを作っていきます。
今回は登録したデータを表示できるようにしました。なので、その流れについて書いていきます(^O^)/
データを登録する。
今回はRailsコンソールからデータを登録していきます。rails console を入力してコンソール画面に入ります。(rails c でもOK)
テーブル自体は前回作ってあるので、ここにデータを追加していきます。
長々と書かれていますが、要は「hello!という意味をもつhelloという単語を登録」しています。
w = Word.new(word: "hello", meaning:"hello!")
で新しくデータを作成。
w,save
で保存しています。
アクションを作成する。
ビューで利用するためのアクションを書きます。まあ、データベースをサイトに表示するための命令を書く、といった感じです。
app/controllers/russian_words_controller.rb
今回は、words.html.erbというファイルにデータを表示させます。なので単語帳のページであるword.html.erbに対応させる形で、wordアクションに追記します。
@words = Word.all
こちらの行に注目。
Wordテーブルに登録されたすべての(all)データをとってきて、wordsという入れ物に入れています。@hogeに入れたものはview(HTML)から使うことができますヽ(=´▽`=)ノ
ビューでデータを呼ぶ
最後に、ビューでデータ(を入れた入れ物)を呼びます。
記述はこのようになります。
今回はちょっと複雑ですねヽ(´Д`;)ノ
ここでは持ってきたデータ全てを表示させる処理をしています。順を追って見て行きましょう!
あっ、<% %>というタグのようなものがありますが、ここにはHTMLではできない特別な処理を書いていきます。
1, <% @words.each do |word| %>
この記述は持ってきたデータをループさせる命令をしています。@wordsに格納された単語データ1件1件に対して、同じ処理を繰り返していきます。| word | はループごとに1件分のデータをwordに入れるよ!という命令です(^O^)
2, <%= word.word %>, <%= word.meaning %>
ここではwordという1件分のデータからそれぞれword(単語)とmeaning(意味)を取り出して、HTML内に入れています。
また先ほどと違って、<% %>の中にイコールが入っています。これを書くことで持ってきたデータを代入のように入れることができます。
3, <% end %>
さいごに。ここでループが終わることを明記しています。
<% @words.each do |word|%>から<% end %>を、データの件数分繰り返す。というのがここでの全体の処理となります。
確認
さて、rails serverコマンドにてローカルサーバを立ち上げます。
そしてブラウザで確認して見ると…
出ました−ヽ(=´▽`=)ノ
(ミスって単体のhelloというゴミが入ってます。スミマセン…(´;ω;`))
まとめ的な
僕は仕事で、Javaを使って大規模サイトの作成に携わっています。なので、データを持ってきてビューに表示する、という作業は経験がありました。
それでも、Railsでやるとこんなにもカンタンなのかと驚いています。それに何より楽しい!記述が直感的でわかりやすいし、ビューへの持ってき方も楽チンですヽ(=´▽`=)ノ
というわけで、データとビューがつながったので次回までにデータを増やしておこうと思います!では!
参考にしたサイト様
またまたドットインストール様。いつまでもお世話になっています(´;ω;`)