20210130・0131_アウトプット(スキルテスト・復習/オリジナルアプリ)
1/30行ったこと 9時間35分
1/29のアウトプット…45分
オリジナルアプリ…2時間50分
👉イフゼンルールの実装が上手くいかない。スキルテスト 90分×2本
👉Rubyの知識のなさに気づくことが出来た。スキルテストの復習 3時間
👉焦っていると頭に入らない。良くない。
1/31行なったこと 9時間45分
オリジナルアプリ…6時間
👉イフゼンルールの実装が上手くいかない。商品購入のミニアプリ…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.rb
にconfig.i18n.default_locale = :ja
を追記。
(2)gem 'rails-i18n'
をバンドルインストール
(3)devise.ja.yml
(デバイス用)とja.yml
(それ以外のカスタマイズ)というlocale(ロケール)ファイル
を作成する。(config/locales/
配下)
devise.ja.yml
に関しては、↓記述内容をコピーすれば良く、それ以外足りない部分はja.yml
に記載。(大変便利!)
# 自分で翻訳したいところを追記 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自体のアルゴリズムを使って解く問題について全然理解が足りていないことに気がついた。😭そして、企業のコーディングテストのことを調べれば調べるほど後者のスキルがないと解けないのでは?ということに気付き、焦りと非力さに落ち込んだ。
今になって、RailsとRubyの役割の意味が分かってきた。Railsはフレームワークで基本的なMVCの知識や便利なgemの要点を抑えつつアプリケーションを作り上げるもの。そのために外部のAPI(PAYJP・SNSログイン)等、便利なものを引っ張ってきてアプリケーションに取り込むことを学んでいたこと。それとは別にフレームワークにない機能を作る手段としてRubyがあること。自分でメソッド等を作ることによって要件に沿ったアプリケーションに近づけることが出来ること。2つの力を組み合わせて、ニーズに合ったアプリを作っていく力になるんだということがやっと分かった😭
そして半年間必死に勉強してきたことの多くはRailsに関することだったので、Rubyの知識が足りない故に、シンプルな7つのアクションのMVCや簡単なメソッドによるMySQLからのデータの取得以外の時につまづくことが多いんだと原因が分かった。(もっときっと良いSQL文あるのではないか?と思いつつも知識不足で直せないのが悔しい)
伊藤さんのチェリー本の表紙に書いてあった「みなさんがRubyをちゃんと理解しているRailsプログラマになれるように」っていう言葉の意味が、今になって、そういう意味だったのかと身にしみるように感じた😭
今ここでその大切さに気づけたと思って、オリジナルアプリ作りつつもRuby自体の知識も一つずつ学んでいこうと思った。
覚書(12/29計画の見直し)
(1)やるべきこと (2)やりたいこと (3)やれること
(1)やるべきこと
- 卒業要件の完成
(2)やりたいこと
追加実装を学ぶためのミニアプリ作成
オリジナルアプリの作成
PHPの勉強
面白そうだから参加したい・見たい(済:やめ太郎さんのキータ表彰・yahooイベント)
読書
(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