Hitsuji_monのブログ~ 村上春樹のあれ ~

文学好きな組み込み系エンジニア

【#100DaysOfCode】Day17 「作りながら学ぶRuby入門」26章 && 【Railsチュートリアル】

ついに今日はRailsチュートリアルに突入した。
AWS Cloudさわれて感動、便利!!!
ワクワクしたわ、素直に。

Day17

「作りながら学ぶRuby入門」26章

  • 各メニュー画面における静的表示と、画面遷移をプログラム化

今日のpoint

1. データベース検索の結果をHTMLに埋め込む: .erbを用いる

# 蔵書データを選択して、処理をサーバに依頼
<form method="post" action="list">   

2. テーブルのデータを表示する前に、項目名を表示

# column_nameメソッドは配列を返すので、eachメソッドで順に取り出して表示
<% sth.column_names.each do |name| %>      
    <th><%= "#{name}" %></th>         



これを踏まえて以下コード。
これまでやってきたことと何も変わらない

<% # 作りながら学ぶRuby入門 26章 (済) Webサーバ側のプログラム %>
<% # メニュー画面:「蔵書画面の表示」  を作成 %>
<% # HTMLに、データベースからの検索結果を埋め込む: erbファイル%>

<% require 'rubygems' # RubyGemsでインストールしたときには記述  %> 
<% require 'dbi'      # DBIを使う %>

<%# dbhを作成し、データベース'bookinfo_sqlite.db'に接続する %>
<% dbh = DBI.connect( 'DBI:SQLite3:bookinfo_sqlite.db' ) %>

<%# テーブルからデータを読み込んで結果のセットを得る %>
<% sth = dbh.execute("select * from bookinfos;") %>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> 
  <link rel="stylesheet" type="text/css" href="default.css">
  <title>蔵書管理</title>
</head>
<body>
<h1>蔵書管理</h1>
<h2>蔵書データの表示</h2>
<p>処理する蔵書データを選択してください|
<a href="entry.erb">蔵書データの登録</a>|
<a href="retrieve.erb">蔵書データの検索</a>|
<a href="index.html">メニュー画面に戻る</a></p>

<hr>
<%# 修正データを表示する アクションはlist %>
<form method="post" action="list">
<table>
<%# テーブルの項目名を取り出して表の項目行を表示する %>
  <tr>
    <th>削除</th><th>修正</th>
<% sth.column_names.each do |name| %>
    <th><%= "#{name}" %></th>
<% end %>
  </tr>

<%# select文の実行結果を1件ずつrowに取り出し、繰り返し処理する %>
<% sth.each do |row| %>
  <tr>
<%# each_with_nameメソッドで値と項目名を1件分ずつ取り出して表示する %>
<%   row.each_with_name do |val, name| %>
<%     if name == 'id' then %>
<%#    valueに選択したidの値の後に処理(.delete, .edit)を結合した文字列を設定する %>
       <td><input type="radio" name="oparation" value=<%="#{val}.delete"%> /></td>
       <td><input type="radio" name="oparation" value=<%="#{val}.edit"%> /></td>
<%     end %>
       <td><%= "#{val.to_s}" %></td>
<%   end %>
  </tr>
<% end %>
</table>
<input type="submit" value="選択した処理を実行" />
<hr>
</body>
</html>
<%# 実行結果を解放する %>
<% sth.finish %>

<%# データベースとの接続を終了する %>
<% dbh.disconnect %>


とりあえず終了。本日のメインはこれからである。
実は Railsチュートリアルに突入した



本日のメイン 【Railsチュートリアル


本記事での扱い

内容については、チュートリアルがわかりやすくまとまっており、
ここに書き直しても時間の無駄なので、やったことを簡単に記録していく。

今日やったこと

  • Railsチュートリアルを 1〜8章までざっと読む
    • 読み方(の粒度)
    • これからどういうことをやりたいのかという【動作イメージを持つ】
    • どんな道具を使うのか知る :  詳しい中身は飛ばす
    • 何ができるようになるのかを知る
  • 実際に手を動かして、【コピペ】でざっくり作っていく
    • 1章 AWS Cloud9で手早くRails環境を作って,hello_appを作成
    • 1章 Gitを使ってhello_appをpushするくらいまで

bitbucketにpushするところで詰まって、終わり


Cloud環境使うのも、Git的なバージョン管理ツール使うのも初めてで楽しい〜〜!!
commitとかmergeとか,pushとか「意味はわかるけど・・」って感じだったが、
「とりあえず使ってみた!」という精神状態まで進めて、よい。

やっぱりさっさとRailsチュートリアル進めてこ〜〜。


学習について[メモ]

  • 40秒で復習する
  • 難しい概念は、10才の子供に説明するつもりで、たとえ話 を考える
  • 相手に説明するときは、【相手の得意な分野でのたとえ話】を使うと、なお良い

最後のポイントは上司に話すときも、使えるようにしたい