20201225_アウトプット(PHP・ウィザード形式の実装)
今日行ったこと 3時間10分
PHPの学習(プロゲート)40分
ウィザード形式の実装 2時間半 👉引き続き、詰まっている。前提の確認。メンターさんに質問もした。
新しい発見
PHPについて
Rubyの
put
のような感覚でecho
(エコー)で表示させる。文章の終わりにセミコロン
;
がいる。文字列・数値の表示、演算子系や条件分岐について、Rubyとほぼ同じ(
elsifも使える👉12/30訂正!elseif
だった💦)変数には
$
をつける。文字列の結合にはドット
.
を用いる。++
の記入する位置によって、足し算(--
の場合は引き算)されるタイミングが異なると理解。
$x = 3; $y = 3; echo ++$x; //結果は4。`echo`の前にプラス1されるため。 echo $x++; //結果は3。`echo`の後にプラス1されるため。
form_with
に変更したいが上手くいっていない状況について(未解決、前提を整理)
そもそもform_for
とform_tag
の違いは何か?(復習)
保存するテーブルが存在するときにはform_for
。
そうでない場合(検索などの入力フォームだけ作りたい)はform_tag
と理解。
form_with
は何か?(復習)
【Rails】form_withの使い方を徹底解説! | Pikawaka - ピカ1わかりやすいプログラミング用語サイト
form_for
とform_tag
の機能をあわせ持つもの。(rails5.1から新しく出来た)
# データベースに保存しない時の書き方 <%= form_with url: プレフィックス do |form| %> フォーム内容 <% end %>
# データベースに保存しない時の書き方 <%= form_with model: モデルクラスのインスタンス do |form| %> フォーム内容 <% end %>
resource
って何?
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> <%= render "devise/shared/error_messages", resource: @user %>
- ここで出てくる
resource
は、どのようなModelのインスタンスが来ても大丈夫なように定義できるもの。as:
オプションにより、params[resource_name]
で参照できるようになることを理解。
Ruby on Rails - deviseのform_forに関して|teratail
よくわからなかったコントローラーについてすっきり
今回のコントローラーで一番意味わからなかったところ(抜粋)
(省略) def create @user = User.new(sign_up_params) render :new and return unless @user.valid? session['devise.regist_data'] = { user: @user.attributes } session['devise.regist_data'][:user]['password'] = params[:user][:password] @address = @user.build_address render :new_address end (省略)
session['devise.regist_data'][:user]['password'] = params[:user][:password]
の意味がわからなかった😭何で配列横に並んでるのー😩(メンターさんに聞いた)
間違えていたところ
session[:user]
もsession['password']
も空だし、何の意味があるんだろう?と思っていた↓
正しくはこうだった
params[:user]
とparams[:user][:password]
と調べるとちゃんと値でる。↓
上記のことから、session['devise.regist_data'][:user]['password'] = params[:user][:password]
の意味が、
session['devise.regist_data']
に、params[:user][:password]
を付け加える意味なのかとわかってすっきりした。
感想
細かいところで詰まってしまっているけれど、こういう時こそ、成長の糧になると思って頑張る。
そんな時(本当はもっと早く進みたい、追加実装の一つ目でなぜこんなに詰まっているのかと考えている時)に、ご飯中にyoutubeでたまたま見ていたイチロー選手のインタビューで「人より頑張ることは出来ない。はかりは自分の中にある。自分なりにそのはかりを使いながら自分の限界を見ながらちょっと超えていく。それを繰り返していく。そうするといつの日かこんな自分になっているんだっていう状態になる。なので小さい積み重ねでしか自分を超えていけない。一気に高みに行こうとすると、今の自分とギャップがありすぎて続けられない。ある時期は後退しかないこともあるが、自分がやると決めたことを信じてやっていく。ただそれが正解とは限らない。遠回りすることでしか本物の自分に出会えない。」という記者会見をみて、すごい励みになった😫♡
覚書
ミニアプリ(目的:知識の引き出しを増やす)
コメント機能の実装
ウィザード形式の実装 👉12/23 70%
SNS認証によるログイン機能の実装
複雑な検索機能の実装
タグ付機能の実装
パンくず機能の実装
クレジットカード決済機能(ユーザーに紐付け)
エラーメッセージの日本語化(チャットアプリに追加実装)
プレビュー機能の実装・複数枚の画像投稿の実装
優先順位
(1)ミニアプリの作成(実装方法の理解)・個人アプリのためのインタビュー・DB設計等
👉12月29日(火)締め切り
(2)個人アプリの作成。
👉1月11日(月)締め切り(基本実装)
(3)(1)で学んだことを「フリマアプリ」あるいは「個人アプリ」に反映。
👉1月17日(日)締め切り
追加:(1)(2)(3)と同時並行で、PHPについても学ぶ。
身に付ける力(直近)
PHP7
ドメイン駆動開発
Docker
身に付ける力(ゆくゆく・覚書)
環境構築
環境変数などのOS知識
バージョン対応力
データベースをインポートする力・エクスポートする
GitHubActions×OpenAPIGenerator(APICilent)