読者です 読者をやめる 読者になる 読者になる

コンパイラかく語りき

文系新卒プログラマーのメモ

文系プログラマーがRailsでロシア語アプリケーションをつくる③

Rails

 どうも!chuckです。

前回に引き続き、RailsでWebアプリケーションを作っていきます。 

chuckwebtips.hatenablog.com

 

 

今回は登録したデータを表示できるようにしました。なので、その流れについて書いていきます(^O^)/

 

データを登録する。

今回はRailsコンソールからデータを登録していきます。rails console を入力してコンソール画面に入ります。(rails c でもOK)

テーブル自体は前回作ってあるので、ここにデータを追加していきます。

f:id:chuck0523:20150715222818p:plain

長々と書かれていますが、要は「hello!という意味をもつhelloという単語を登録」しています。

w = Word.new(word: "hello", meaning:"hello!")

で新しくデータを作成。

w,save

で保存しています。

 

アクションを作成する。

ビューで利用するためのアクションを書きます。まあ、データベースをサイトに表示するための命令を書く、といった感じです。

f:id:chuck0523:20150715223140p:plain

app/controllers/russian_words_controller.rb 

 

今回は、words.html.erbというファイルにデータを表示させます。なので単語帳のページであるword.html.erbに対応させる形で、wordアクションに追記します。

@words = Word.all

こちらの行に注目。

Wordテーブルに登録されたすべての(all)データをとってきて、wordsという入れ物に入れています。@hogeに入れたものはview(HTML)から使うことができますヽ(=´▽`=)ノ

 

ビューでデータを呼ぶ

最後に、ビューでデータ(を入れた入れ物)を呼びます。

記述はこのようになります。

f:id:chuck0523:20150715223944p:plain

今回はちょっと複雑ですねヽ(´Д`;)ノ

ここでは持ってきたデータ全てを表示させる処理をしています。順を追って見て行きましょう!

 

あっ、<% %>というタグのようなものがありますが、ここには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コマンドにてローカルサーバを立ち上げます。

そしてブラウザで確認して見ると…

 

f:id:chuck0523:20150715225054p:plain

 

出ました−ヽ(=´▽`=)ノ

(ミスって単体のhelloというゴミが入ってます。スミマセン…(´;ω;`))

 

 

まとめ的な

僕は仕事で、Javaを使って大規模サイトの作成に携わっています。なので、データを持ってきてビューに表示する、という作業は経験がありました。

それでも、Railsでやるとこんなにもカンタンなのかと驚いています。それに何より楽しい!記述が直感的でわかりやすいし、ビューへの持ってき方も楽チンですヽ(=´▽`=)ノ

 

というわけで、データとビューがつながったので次回までにデータを増やしておこうと思います!では!

 

参考にしたサイト様

dotinstall.com

またまたドットインストール様。いつまでもお世話になっています(´;ω;`)