💎 Railsチュートリアル〜18(9/3~12までの積み上げ)
作成日: 2021/09/13
0

Railsチュートリアル〜18(9/3~12までの積み上げ)

7章続き(正味6日間)

7.2ユーザー登録フォーム

  • 改めて、ユーザー登録用の.erbファイルを作成するってこと

7.2.1 form_withを使用する

  • フォームもRails側で用意されているのがある

Railsでform_withヘルパーメソッドを使います。

  • 色々用意されてて便利だねぇ…
  • form_withめっちゃ色々用意されてるんだ…

7.3 ユーザー登録失敗

  • Strong Parameters : セキュリティを強化する機能
  • privateキーワードもあるんだ(Rubyに)
  • 生成されたHTMLファイルなのか、今作成してるnew.html.erbファイルなのか一瞬迷子になった

ハッシュのキーはデバッグ情報では文字列となっていますが、Railsは文字列ではなく、params[:user]のように「シンボル」としてUsersコントローラに渡している点に注意してください。

  • User情報が丸っと全部入ってるってことか
  • Strong Parameters
  • 限られた引数のみ受け取ることでWeb上の脆弱性からシステムを守る 的な

user_paramsメソッドはUsersコントローラの内部でのみ実行され、Web経由で外部ユーザーにさらされる必要はないため、〜を使って外部から使えないようにします

  • なるほど……ユーザー側に見えないようにするために使うのがprivateって予約語なのね…
  • pluralizeって何やってるのかと思ったらエラーメッセージを作成してるっぽい
  • エラーメッセージが重複する場合であっても「allow_nil: true」って書くとスッキリ表示してくれるらしい
  • バリデーションを書いたのってどこだったっけ… あ、modelんとこだったはず
  • <%= 〜 class: ‘form-control’ %> の class と : の間は空白無いけど、: と ‘form-control’ の間は空白がある!(めっちゃRailsのエラー出た…)
  • あと、引数と引数の間に「,(カンマ)」忘れずに…
  • 手打ちするとめっちゃタイポエラー出て勉強になるわ〜

Railsではフォーム用のテストを書くことができ、こういったプロセスを自動化することができます。

  • 便利だなぁ〜
  • いきなり「〜します」的な記述でコードの一部が記されている場合、その記述以降のコードで実装されていることが多いので焦らず読み進める(Railsチュートリアルに沿って学習するときのコツ的な)
  • ↑のようなことがよくあるので縦に長いディスプレイがあると便利(前後で一覧できるから)
  • 演習の時に変更した値や変数は演習が終わったらもとに戻しておくこと。じゃないと、チュートリアル中に意味不明なエラーに遭遇することになる

7.4 ユーザー登録成功

  • 新規ユーザーを実際にDBに保存する
  • なんか知らないけどusers_helpe.rbで書いた1行がエラーになったなぁ…仕方ないからコメントアウトした
  • flashメッセージ。あのflashとは別物。
  • リスト7.28がまったく動かない…う〜〜ん何か間違ってる?というかrailsコンソールが反応してない?
    • コンソールが反応してなかった…
  • CSSのクラスもメッセージの種類によって変化するように埋め込みコードで実装する
  • しかもこのCSSクラスのスタイルをBootStrapが標準で持っている
  • rails db:migrate には reset もあるのか〜
  • testの仕様がイマイチわかってない…no があったりなかったりとか in があったりなかったりとかで簡単にエラーになるって仕様?よくわからん…セットのキーワードか何かがあるのかな?
  • htmlに埋め込むための定型文的な何かもあるのかもしんない
  • redirect_to @user の行をコメントアウトするとなんでテストに失敗するんだろ…

7.5 プロのデプロイ

  • 実際にやるべき手順
  • 本番環境移行時のセキュリティうんぬん=TLS

SSLを有効化するのも簡単です。production.rbという本番環境の設定ファイルの1行を修正するだけで済みます

  • 最後の最後にHerokuにログインできない…以下エラー
remote: !       WARNING:
remote: !       Do not authenticate with username and password using git.
remote: !       Run `heroku login` to update your credentials, then retry the git command.
remote: !       See documentation for details: https://devcenter.heroku.com/articles/git#http-git-authentication
fatal: Authentication failed for 'https://git.heroku.com/sample-app~~~~/‘

こんなところで……グーグル翻訳様に祈る…

`heroku login`を実行して資格情報を更新してから、gitコマンドを再試行してください。
  • とのことだったので、ログイン情報が期限切れ?だったのかな? コマンド入力すると結構待たされる…
  • heroku login するけど入れない…なんで? rails serverのせい? 一旦終了する!
  • 関係なかったっぽい…で、ググってみた。
  • heroku login --interactive ってやると良いらしい
heroku: Enter your login credentials
Email [〜〜@gmail.com]: 〜〜@gmail.com
Password: *********
Logged in as 〜〜@gmail.com
  • herokuのIDのEmailとパスワードを聞かれた.
  • イケた!?……表示されねぇ…ってか、herokuにUPされてないくさい…何がおかしいんだ…
  • …クリックするURLを間違ってた…大丈夫だった〜〜〜!!! よかった〜〜〜!!!

7章!終わり!!!

長かった…というか途中で色々やってたのが良くなかった
8章以降は時間をやりくりして素早く終わる方法を模索しよう…

SJC-P1.4/心理学検定特1級所持 過去:専門学校で非常勤講師(複数) 現:フリーター/2児の子持ち/家庭教師バイト中 Doing:#HTML #CSS #JavaScript #Ruby #Rails #心理学@放送大学(心理と教育コース) Webアプリを開発したくて日々勉強中