序文
今日僕土曜日の気分でいるんですけど日曜日なんですね。
進捗
- 第10章ユーザーの更新・表示・削除
- 10.1 ユーザーを更新する
コード実装部分(一部)
/sample_app/app/views/users/edit.html.erb
<%# 順番が気持ち悪いが:titleに"Edit user"を指定し、layouts/application.html.erb内で使用している %> <% provide(:title, "Edit user") %> <%# 順番が気持ち悪いが:button_textに"Save Changes"を指定し、 %> <%# users/_form.html.erb内で使用している %> <% provide(:button_text, "Save changes") %> <%# user_pathにPATCHリクエストでユーザーデータを更新する %> <% provide(:output_path, user_path) %> <h1>Update your profile</h1> <div class="row"> <div class="col-md-6 col-md-offset-3"> <%# /users/1に対してpostで送信するフォーム %> <%# <form class="edit_user" id="edit_user_1" action="/users/1" accept-charset="UTF-8" method="post"> %> <%# <input name="utf8" type="hidden" value="✓" /> %> <%# PATCHリクエストを「偽造」している(なくてもいい?) %> <%# 実際には@userが既存のものであれば(new_record?メソッドで判定) %> <%# PATCHアクションと判断している %> <%# <input type="hidden" name="_method" value="patch" /> %> <%# <input type="hidden" name="authenticity_token" value="XXXXXXXXXX==" /> %> <%# /sample_app/app/views/users/_form.html.erbに定義したレイアウトフォーム %> <%= render 'form' %> <div class="gravatar_edit"> <%# ヘルパーメソッドでgravatarへのリンクを作成する %> <%= gravatar_for @user %> <a href="http://gravatar.com/emails" target="_blank" relationship="noopener">change</a> </div> </div> </div>
GitHub
実行結果
感想
なお、サンプルアプリケーションの基本的なログイン機構は第8章で実装できているので、実は本章をスキップして第10章に進んでしまうことも可能です
まずはユーザーデータの更新から実装していく。
今までいくつかなんとなくWebアプリケーションを作成してきたが、データの更新ということをやったことがないので、よくわからない。
PATCHアクションとかいうのを使うらしい。
やっぱりRubyはわかりづらい。
目印がないのでその文字列が、変数なのかメソッドなのか、はたまた名前付きルートとかいうやつなのかさっぱりわからなくなる。
「すべてがオブジェクト」らしいので、そういう風に考えること自体が間違いなのだろうとは思うが、まだRubyの思想が腹落ちしていない。
ヘルパーメソッドにしてもどこで定義しているものか分からなくなって、ソースを追うのが難しい。
ひとつひとつコメントを打ってなるべく混乱しないように努めているが…。
チェリー本読めばいいのかなー。

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
- 作者: 伊藤淳一
- 出版社/メーカー: 技術評論社
- 発売日: 2017/11/25
- メディア: 大型本
- この商品を含むブログを見る
カロリーメイトもください。

- 出版社/メーカー: 大塚製薬
- メディア: 食品&飲料
- この商品を含むブログを見る
今日のunityroom
PuzzCubic | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう
www.youtube.com
教本の教材に良さそう