20210130・0131_アウトプット(スキルテスト・復習/オリジナルアプリ)

アウトプット画像

1/30行ったこと 9時間35分
  • 1/29のアウトプット…45分

  • オリジナルアプリ…2時間50分
    👉イフゼンルールの実装が上手くいかない。

  • スキルテスト 90分×2本
    👉Rubyの知識のなさに気づくことが出来た。

  • スキルテストの復習 3時間
    👉焦っていると頭に入らない。良くない。

1/31行なったこと 9時間45分
  • オリジナルアプリ…6時間
    👉イフゼンルールの実装が上手くいかない。

  • 商品購入のミニアプリ…1時間
    👉これでミニアプリ全て完了した!

  • Rubyアルゴリズムの勉強…1時間

  • 日本語エラー…1時間 
    👉devise.ja.ymlっていう便利なファイル作れるのを知らなかった。

  • アウトプット…45分

新しい発見について

細かい方法を忘れがちなシードファイル

  • seedファイルとはデータを簡単にデータベースへ投入できる方法。
No ポイント
1 記入する場所はdb/seeds.rb
2 モデル名.create(キー: バリュー)という形で書く
3 コマンドはrails db:seed
# 例
Item.create(name: 'ペン', price: 100)
Item.create(name: 'ペン2', price: 200)



「envコマンド」と「grepコマンド」

コマンド 内容
envコマンド 「environment(環境)」の略称で、全環境変数を表示することができる。
grepコマンド 様々な条件での検索ができる。

組み合わせてPAYJPの環境変数が、正常に設定できているか確認できた。

$ env | grep PAYJP



エラーメッセージの日本語化

  • deviseの機能で初めからエラーメッセージが表示される機能がついているので、ログインのビューに以下を追記。
   <%# ログイン時のエラーメッセージ  %>
    <div class='login-flash-message'>
      <%= flash[:notice] %>
      <%= flash[:alert] %>
    </div>
(省略)<%= form_with model: @user, url: user_session_path, id: 'new_user', class: 'new_user', local: true do |f| %>

昨日と重複する部分もあるが、

(1)config/application.rbconfig.i18n.default_locale = :jaを追記。
(2)gem 'rails-i18n'をバンドルインストール
(3)devise.ja.yml(デバイス用)とja.yml(それ以外のカスタマイズ)というlocale(ロケール)ファイルを作成する。(config/locales/配下)

  • devise.ja.ymlに関しては、↓記述内容をコピーすれば良く、それ以外足りない部分はja.ymlに記載。(大変便利!)

github.com

# 自分で翻訳したいところを追記
ja:
 activerecord:
   attributes:
     user:
       nickname: ニックネーム
     tweet:
       text: テキスト
       image: 画像



スキルテストの復習

  • HTTPメソッドについて復習になった。

  • POSTとPATCH(PUT)の違いはパラメーターが見えるかどうか。POSTで送る場合には、ボディ内に包まれて送られるため見えないと理解。

↓このサイトがわかりやすかった。 masa-enjoy.com

オリジナルアプリについて

  • 習慣カウントページに「イフゼンルール」を載せたいが上手くいかない。

  • 立てていた仮説としては、

(1)ruleモデルを作成。userモデルとhabitモデル(習慣カウント)とアソシエーションを組む。
(2)rulesコントローラーにおいてイフゼンルールを新規登録・編集できるようにする。
(3)renderでhabitモデル(習慣カウント)のindexページに載せる。

だった。

  • 複数アソシエーションを組んだ場合のストロングパラメーターが上手く運べていないこと。

  • habitモデルとのアソシエーションを解除し、 @rule = Rule.where(user_id: current_user.id)and Rule.lastにて、カレントユーザーかつ一つのイフゼンルールを運べるようになったが、renderやidがエラーになってしまうこと。

  • 小さい部分をタイポしていたり、スキルテストのことを引きずってしまい、集中できていなかったのが良くなかった。もう一回一つ一つやろうと思った。




感想

  • 1/30にスクールのスキルチェックテストがあった。アウトプットのおかげか教養に関する部分は良かったものの、Ruby自体のアルゴリズムを使って解く問題について全然理解が足りていないことに気がついた。😭そして、企業のコーディングテストのことを調べれば調べるほど後者のスキルがないと解けないのでは?ということに気付き、焦りと非力さに落ち込んだ。

  • 今になって、RailsRubyの役割の意味が分かってきた。Railsフレームワークで基本的なMVCの知識や便利なgemの要点を抑えつつアプリケーションを作り上げるもの。そのために外部のAPI(PAYJP・SNSログイン)等、便利なものを引っ張ってきてアプリケーションに取り込むことを学んでいたこと。それとは別にフレームワークにない機能を作る手段としてRubyがあること。自分でメソッド等を作ることによって要件に沿ったアプリケーションに近づけることが出来ること。2つの力を組み合わせて、ニーズに合ったアプリを作っていく力になるんだということがやっと分かった😭

  • そして半年間必死に勉強してきたことの多くはRailsに関することだったので、Rubyの知識が足りない故に、シンプルな7つのアクションのMVCや簡単なメソッドによるMySQLからのデータの取得以外の時につまづくことが多いんだと原因が分かった。(もっときっと良いSQL文あるのではないか?と思いつつも知識不足で直せないのが悔しい)

  • 伊藤さんのチェリー本の表紙に書いてあった「みなさんがRubyをちゃんと理解しているRailsプログラマになれるように」っていう言葉の意味が、今になって、そういう意味だったのかと身にしみるように感じた😭

  • 今ここでその大切さに気づけたと思って、オリジナルアプリ作りつつもRuby自体の知識も一つずつ学んでいこうと思った。


覚書(12/29計画の見直し)

(1)やるべきこと (2)やりたいこと (3)やれること

(1)やるべきこと

  • 卒業要件の完成

(2)やりたいこと

(3)やれること

メンタル:楽しみながら、ゲーム感覚でいく🎮😎

時間で区切り(達成すればよし)
  • 1日 15分以上勉強する
追加実装のミニアプリを作り、引き出しを増やす
優先順位 内容(機能) 締め切り 達成度
1 AWS S3 12/18 完了(フリマアプリ)に実装)
2 AWS EC2 12/24 完了(フリマアプリに実装)
3 ウィザード形式 12/27 完了
4 SNS認証 12/28 完了
5 複数条件検索 12/29 完了
6 タグ付 12/31 完了
7 画像プレビュー 1/2 完了※フォーク
8 複数枚写真OK 1/4 完了※7に追加実装
9 コメント機能(即時更新) 1/8 完了
10 クレカ登録 1/10 完了
11 パンくず 1/14 完了
12 日本語エラー 1/18 完了



身に付ける力(直近)

  • PHP7

  • Docker


身に付ける力(ゆくゆく・覚書)

  • ドメイン駆動開発

  • 環境構築

  • 環境変数などのOS知識

  • バージョン対応力

  • データベースをインポートする力・エクスポートする

  • GitHubActions×OpenAPIGenerator(APICilent)