本日のOut Put part33
こんばんは、Ramrinです^^
今日も引き続き商品出品機能の実装に当たりました。
先日の最後に出たストロングパラメーターのエラーは、
ビューファイルの一部が:hogeのままだったことが原因でした。
ストロングパラメーターのエラー=コントローラーファイルの問題と
思い込んでいたので、ビューファイルを見直して発見した時は
「こいつか!!!!」ってなりました笑
そのあと商品出品機能のモデルの単体テストコードの実装に入りました。
前回のユーザー管理機能の単体テストコードで苦戦しまくっていた分、
今回はスムーズに実装することが出来ました。
失敗は次に活かせばOKですね。
本日はここまで!
次回はJavaScriptを使うところに入ります。
ではまた^^
本日のOut Put part 32
こんばんは、Ramrinです^^
今日も引き続き、商品出品機能の実装にあたりました。
先日発生していたエラーについては、
ルーティングとビューファイルの見直しと修正をしたのですが改善せず、
他に思いつく対応がなかったので、
メンターさんに質問しました。
メンターさんも最初、自分と同じ考え方でコードをチェックされたので、
「あ、自分の対応は間違っていなかったんだな」と少し成長を感じました。
最終的にはコードには問題なく、サーバーの再起動で解決しました。
ビューファイルの記述を変更してからはサーバーの再起動をしていなかったです。
ルーティングの変更以外でも、サーバーの再起動で問題解決することがあることを知りました。
問題解決したつぎは、商品画像がうまくDBに保存されず、
ターミナル上でのエラーが発生しました。
ストロングパラメーターが怪しそうなので、一通り見直しましたが、
今日思い当たったところを修正しても改善せず。
次に持ち越します。
エラーに続くエラーですが、プログラミングって書き方は様々ですが、
結果的な答えがはっきりしているのが気持ちいいですね。
ここは今のお仕事の考え方と近いものがあるなぁと思うこの頃です。
以上、本日はここまで。
ではまた^^
本日のOut Put part31
こんばんは、Ramrinです^^
先日、ユーザー管理機能のLGTMをいただけたので、
今日から商品出品機能の実装に入ります!
新しく学んだこと
- Active Hash
データベースに実際に保存はいないけれど、
しているときのようにデータを扱えるというRuby on Railsのライブラリになります。
変更をしないことが予想されるデータ(例えば都道府県)については、このActive Hashを使用した方が、データ量が軽くなります。
今日は商品出品ページの実装とActive Hashを用いたデータの準備を行ないました。
ローカルテストでitem/newのRouting Errorが出たので、
一度頭を冷やす意味でもここで終了しました。
今までもそうだったのですが、
エラーの部分の解消方法がひらめかず、勉強時間も限られているときは、
スパっとその日の勉強をやめて、次の日にしちゃいます。
するとなぜか次の日には解決方法がひらめいてスムーズに実装が進むことが多いです。
それでもひらめかないときにはメンターさんに質問します。
ということで本日はここまで!
ではまた^^
本日のOut Put part30
こんばんは、Ramrinです^^
今日も引き続き、ユーザー管理機能の実装にあたりました。
先日、自分でも驚きの「ひらめきデー」でして、
ずっと苦戦していたバリデーションと単体テストコードについて、
調べていたら「お!これでいけるんじゃない?」とひらめいて実装したところ、
実装がうまくいきました!!!!
こうゆう日がたまにあると楽しいですよね笑
そして今日はメンターさんに提出して、追加でご指摘をいただいたところを修正しました。
新しく学んだこと
- バリデーションの条件をまとめる方法
with_option ~ do ~ endというコードを使用することで、
バリデーションの条件をまとめることができました。
しかもこれ、入れ子構造をとれるという便利なものでした。
with_options presence: true do
validates :nickname
validates :password, format: {with: /\A[a-z\d]{6,100}+\z/i }
with_options format: {with: /\A[ぁ-んァ-ン一-龥]/ } do
validates :family_name
end
with_options format: {with: /[\p{katakana} ー-&&[^ -~。-゚]]+/} do
validates :family_name_kana
end
end
おかげでコードがスッキリしました。
この調子で頑張ります^^
ではまた/
本日のOut Put part29
こんばんは、Ramrinです^^
今日もユーザー管理機能の実装にあたりました。
先日の終わりに苦戦していた部分は
ビューファイルを見直したところ、カラム名を初期設定から変えていなかったことが原因でした。
ということですぐに自己解決できました!
次に実際にログイン、ログアウトができ、
ログイン中とそうでない時のTopページのビューの変更を行い、
userモデルの単体テストコードの実装に入りました。
過去のカリキュラムも確認しながらRspec、Factory_bot、Fakerの導入をして、
実際にテストコードを書いてくところで本日の戦場でした。。。
部分的にうまくいったところと、いけてないところがあり、
いけてないところは正規表現が必要そうなところばかり…
次回は正規表現とバリデーションの見直しをしてから実装に入ります。
それでも分からなくなったらメンターさんに質問しようと思います。
当初の予定より、ユーザー管理機能で苦戦しているので、
実装のスケジュールの見直しもして、対応したいと思います。
ではまた^^
本日のOut Put part 28
こんばんは、Ramrinです^^
今日も引き続きユーザー管理機能の実装にあたりました。
今日で提出まで行きたかったですが、
いろいろ苦戦してしまって出来ませんでした。。。
苦戦したところ①
Topページからログイン・新規登録画面に移動しない。
URLで直接入力すればアクセスできるのに、Topページから移動しないということが発生してました。
単純に、アクセスするボタンに設定されているURLが違っているからとは分かったのですが、
問題はその記述があるコードファイルがどこにあるか分からなかったこと!!!
ページ上で検証したら、そのコードがあるファイル名とはわかればいいのに…
どこかにあるはずだと探した結果、ヘッダーにあるボタンだったので_header.html.erbファイルに記述を発見して、
修正して解決しました。
これにすごく時間がかかってしまった。。。
ついでにそのときに復習したlink_to文について
↓基本の形↓
link_to 'リンク文字列', リンク先のパス(URL)
↓外部のサイトのURLや同じアプリケーション内のパスを指定するとき↓
<%= link_to 'Yahoo', 'http://www.yahoo.co.jp/' %>
<%= link_to 'ユーザー一覧’, ‘/users/index’ %>
↓ルーティングの名前でリンク先を指定するとき↓
ターミナルでrails routesをして、Prefixに_pathをつけたものを指定
<%= link_to '新規作成’, new_user_path %>
引数を使う場合
<%= link_to 'Edit', edit_user_path(user) %>
苦戦したところ②
新規登録で入力したデータがDBに保存されない。
コントローラーやマイグレーションファイルなどを見直したのですが、特にエラーもでず、ただただDBに保存されない。。。
終わってからそういえばビューファイルを見直してなかったと気づいたので、
次はビューファイルを確認して、それでも解決しなかったらメンターさんに相談します。
今日は実装以外にライフコーチの方と面談もしました。
いい調子ですね!とのせるのがさすがうまいですね笑
モチベーション上がりました!
早めに最終課題もRubyのオリジナルアプリも作り終えて、
PHPの勉強をしてみるという道を提案してくださいました。
その方が転職先の候補が広がるので前向きに検討したいなと思っています^^
そのためにも最終課題を終わらせねば!!
ではまた^^/
userテーブルのマイグレート修正が出来ない。
■解決したいこと
最終課題のユーザー管理機能実装にて、
Deviseの導入をし、userテーブルを作成後マイグレートしたところ、
StandardErrorが出てしまった。
■自力で調べた内容
エラー内容が「すでにuserテーブルがある」というものだったので
マイグレーションの修正方法を確認した。
■仮説と検証作業の結果
rails db:rollbackを行ない、マイグレーションファイルを修正後にrails db:migrateをしたが解決しなかった。
rails db:migrate:statusをしたところ、usersテーブルのマイグレーションファイルの状態はdownであった。
■原因
datebase.ymlにて
adapter: mysql2
encoding: utf8mb4
となっており、互換性がないためエラーが発生していた。
encoding: utf8mに変更してからrails db:drop→rails db:create (or rails db:reset)でマイグレーションファイルを修正できた。