ひろしとRailsチュートリアルと - その3 : アカウント作成, ログイン

本業のiOS開発がバタバタしていて、前回から2週間空いてしまった。 今日は7, 8, 9章を進めた。

7章

ユーザーページの作成とアカウント作成画面を実装した。

  • debugメソッド
  • Railsが用意している環境3つ(test, development, production)
  • User.find(params[:id])してユーザーページの表示
  • ユーザーのGravatarを表示する初めてのヘルパーメソッド
  • formでpost -> createメソッドでパラメータを受け取ってControllerでロジック実装
  • エラーハンドリング
  • Strong Prameters
  • 本番環境でSSLを使う方法

を学んだ。

サイトにデバッグ情報を出力できる debug(params) メソッド。 アプリで同じようなことをやろうとすると、ライブラリを使うか、log出力用の関数を自分で書かないといけないので、こういった需要に応じたメソッドが用意されてるのはフレームワークの素晴らしさだと思った。

Strong Parameters を使うことで、paramsハッシュのパラメータを指定できること。これを使わないとcurlとかで容易に悪意あるリクエストが送れることを学んだ。

なんかこの章めっちゃ長くて、Togglで勉強時間を計測しているのだが、3時間半近くかかって疲れた。。

8章

7章(アカウント作成)の知見が活かせて、1/3の時間で終わった。

  • ログイン
  • ログアウト
  • SessionsHelper moduleを定義して、session管理のヘルパーメソッドを実装
  • Sessionに応じた画面の出しわけ
  • ||= 演算子を使った代入

を学んだ。

||= 演算子は左辺がnilだったら右辺で代入するやつで、swiftの ?? 演算子みたいな感じで便利だなと思った。

9章

cookieを使ったsessionの永続化を学んだ。なんとなく知識として分かってはいたが、体系的に自分で実装して学べてよかった。 以下、簡易メモ

セッションの保持

  1. tokenをBase64を使って発行
  2. tokenをハッシュ値に変換
  3. DBに保存
  4. cookieに署名付きcookieを使ってuser_idを保存
  5. cookieにハッシュ化したtokenを保存

ログイン時

  1. cookieからuser_idを取得する
  2. user_idでDBからユーザーを取ってくる
  3. 2のuserのハッシュ化したtokenとcookieに保存しているtokenが一致しているか確かめる

途中、cookieにtokenを保存する箇所で盛大にバグを埋め込んでて、そのまま気づかず過ごしていたのだが章の終盤のテストでバグが明らかになって、テストの素晴らしさを体感した。

作業環境

外で作業するときに、家と違ってサブディスプレイがないのがツラみだったのだが、iPadをサブディスプレイ化する Duet Displayというアプリを見つけて、買ってみたら遅延なくて最高だった。ノマドワークが捗りそう。

ひろしとRailsチュートリアルと - その2 : rails:migrate, バリデーション

前回、1章2章を終えて、本格的にTwitterクライアントぽいwebアプリを作る本題のフェーズに入った。

続きを読む

ひろしとRailsチュートリアルと - その1 : 初めてのrails new , Cloud9

Railsチュートリアル開始

前回、Railsを初めたきっかけについてまとめた通り、 初学については色んな人から薦めてもらったRailsチュートリアルをやることにした。

続きを読む

ひろしとRailsチュートリアルと - その0 : iOSデベロッパーの僕はRailsを始めようと思った

最近、Railsチュートリアルを使って、Railsの勉強を始めた。 その備忘録として、ブログに勉強の過程をまとめたいと思う。

なぜiOSデベロッパーの僕がRailsを始めようと思ったか?

きっかけ

前職(webディレクター)からエンジニアになったのが2015年の10月。それから2年半の間、Swift, Javascript, html, css, PHPとフロントエンドメインの経験を積んできたけど、スキルセットとしてはSwift (iOSデベロッパー)としてのスキルが9割くらいで、Unixコマンドの知識も浅かったりと、一つのOSに依存した自分のスキルに課題を感じていた。。

続きを読む

引っ越しのTODO・ナレッジをまとめたリポジトリを作った話

引っ越しのTODO・ナレッジをまとめたリポジトリを作った

最近、都内 to 都内で引っ越しをしたのですが、 数年後同じような作業を1から思い出して作業するのか..と思うと辛いので 今回の引っ越し中にメモしていたTODOリストやTIPSをまとめてリポジトリにして公開しました。

f:id:hiroshings:20180108211753p:plain

続きを読む

何でもない日報を3ヶ月書き続けて得たもの

最近、日報を毎日書いていて3ヶ月と20日程度続けています。 日報というと、新入社員が上司に言われて書かされるイメージのものですが、この日報は自らやりたくて始めました。

本エントリでは、なんで日報を始めたのか?書き続けて得たものについて書きたいと思います。

続きを読む

出社最終日にSwiftへの愛を語った

7/31は前職のweb制作会社の最終出社日でした。

ちょうど社内の技術発表会の順番が回ってきたので、 最後の発表では、Swiftへの愛を語ることにしました。

発表内容はこちら👇

続きを読む