長期戦覚悟 〜個人アプリ作成15〜
本日の学び:
・ルーティングのネストの概念について:
https://railsguides.jp/routing.html
→resourcesメソッドは、7つのアクション(index、show、new、create、edit、update、destroy)のルーティングを一括生成してくれるメソッド
・Active Storageについて:
https://railsguides.jp/active_storage_overview.html
Active StorageとはAmazon S3、Google Cloud Storage、Microsoft Azure Storageのような クラウドストレージサービスへのファイルのアップロードとそれらのファイルをActive Recordオブジェクトに添付することを容易にする。
モデル、カラムも必要なく、carriewaveよりも容易である。
・undefined method `user' for nil:NilClass
user.controllerのルーティングに記述ミス発覚。ログイン後のルート先URLを誤って記述していた為解決しなかった。
明日以降やること:
アプリのデプロイ
複数画像投稿機能
感想:
今現在は、アプリがしっかりと自分が思っている最低限動くことを目標に何とかやっている感じがある。
ただ、今後エンジニアとして就職していくには、コードレビューできる必要があるし、そうなった場合、ネストの概念等を理解していく必要があると痛感した。
まずはデプロイすることを目標にするが、そのあたりのコードレビュー能力も今後つけていこう。
長期戦覚悟 〜個人アプリ作成14〜
・本日実践した事、学んだ事
JavaScriptを特定のファイルに読み込もうとした際出てきたエラー:
Sprockets::Rails::Helper::AssetNotPrecompiled in〜
下記URLの通りに実行した結果解決!
https://qiita.com/sanriyochan/items/99d63e8a8691eb29fa4c
・明日以降やる事
AWSへデプロイ、S3を使って画像投稿
画像を複数枚投稿
・感想
なかなか計画通りに進まない。
卒業してから3ヶ月、個人アプリが完成したら、今度は違う言語を使って開発してみたい。
長期戦覚悟 〜個人アプリ作成13〜
本日学んだこと:
html.erbファイルを全てhamlに切り替える。
せっかく学んだのでやってみることに。
ある程度作成した後でも簡単で便利なことを再確認。
https://qiita.com/4npei/items/1e19b56669f76cbded8b
【Rails】Nil location provided. Can't build URI.のエラー。
Rails consoleで入っているデータを削除する。
すると、エラーは解決されて表示されるようになる。
明日やること:
複数画像投稿に関する準備
感想:
少しずつでも更新していくこと、並行して転職活動を行う。
この両輪を確実に行うことが今大切だ。
長期戦覚悟 〜個人アプリ作成12〜
本日の学び:
RailsにJavascriptファイルを読み込む
JSファイルを作成しても読み込めないのは、.coffeeファイルを読み込んでいた為だった。
https://qiita.com/s-yank/items/cf7cadbb6c6996d67cf7
明日やること:
複数枚画像投稿に向けて
感想:
Javascriptが読み込めない原因がわかり、少しホッとした。
アプリ開発は、自身の理解を深めると共に復習する良い機会と捉えよう。
就活も同時並行で進めていく必要がある。
長期戦覚悟 〜個人アプリ作成10〜
本日実行したこと:
1.エラー内容:
画像を投稿しようとすると、No method errorが出てしまう。よく見ると、indexに行かないといけないのが、showになってしまい、コントローラに記述している@user =newplayer.userでエラーとなる。
1.routes.rbのcontrollerに一つずつ記述していたところを削除し、resourcesを使った。
2.controllerに記述している/indexと指定していたので、削除した。
例)/Post/index→/Post
3.form_tagをform_withに書き換えた
例
→<%= form_with model: @newplayer do |f| %>
内容:<textarea name="content"><%= @newplayer.content %></textarea>→<%= f.text_area :content %>
newとindexはほぼ同じ内容なので、コピペして一部修正
2.githubブランチ編集権限追加
対象のgithubURLをクリック→settingをクリック→manage accessをクリック→ご自身のgithubパスワード入力→権限追加対象のgithubアカウント名を入力→invite a collaboraterをクリックして完了。
3..gitignoreに/public/uploads/と記述することで、画像が変わるごとにデータが入れ替わったり追加されたりしない。
明日やること:
ビューの修正
感想:
本日は自力ではわからない箇所を教わりながら開発を進めていった。
やはり自力でいくら考えてもわからない箇所は、人から教わると新しい発見がある。
人任せではなく、できることをやりきる、できないなら知識が無いから仕方ない、だから学ぶ、この繰り返しで技術力を身につけていきたい。
エラーが出たら、コントローラーだけでなく、ルーティングにも注目して細かいところも見てみる必要があると感じた。
長期戦覚悟 〜個人アプリ作成9〜
本日学んだこと:
アプリ作成がある程度進んだ後にMySQLへ接続する方法。
ほぼ下記のURL通りに行なった。
https://qiita.com/reeenapi/items/9fc38c4f2f8186c78288
https://www.sejuku.net/blog/28403
ちなみに、sqlite3周りでエラーが発生した際、下記を参考にした。
https://qiita.com/Kta-M/items/254a1ba141827a989cb7
PostgresSQLに関しては解決しなかったが、恐らくアプリ開発当初から入れていないと厳しいものだったと思う。なので、次回はそうしよう。
明日やること:
DBに保存される項目を追加する
感想:
DBの接続が上手く行かなかったが、ようやくMySQLと接続することで解決した。
原因は、Gemfileにsqlite3を削除していたこと、もしくはdatabase.ymlにpostgresとsqlite3を記述していたことだった。
そういえば以前、ファイルが開かない場合はgemfile、databaseを疑うというのを聞いたことがある。見てもわからないことだらけだが、今回で言うSQL、DBに関するところを見ることで、解決策が見えてきた。
これでようやくDBに接続できない地獄から解放されたので、少し前に進めそう。