ProtoSpaceで苦戦したところ3

前々回から3回に分けて、発展編の実装課題であるProtoSpace実装の際に自分が詰まったところについてアウトプットしています。内容については以下の通りです。

[目次] 

  1. MVCを実行する一連の流れ
  2. 画像投稿機能
  3. Herokuでのデプロイ

 

今回は、3. Herokuでのデプロイについて書いていこうと思います。

 

アプリケーションを公開するには、

・Heroku上にアプリケーションを作成(heroku create アプリ名)

・Heroku上にアプリケーションの情報をプッシュ(git push heroku master)

・Heroku上でマイグレーションファイルを実行(heroku run rails db:migrate)

の3ステップが必要となります。

これらが出来ていない場合を以下で見ていこうと思います。

 

・Heroku上にアプリケーションの情報をプッシュ出来ていない場合

 この場合、アプリケーションのURLにアクセスしても以下のような画面が表示されます。

これは、中身の情報が何も無いアプリケーションが作成された状態なので、"git push heroku master"でアプリケーションの情報をプッシュする必要があります。

f:id:takuya_karatsu:20201115194257j:plain

 

・Heroku上でマイグレーションファイルを実行できていない場合

空のアプリに"git push heroku master"で情報をプッシュしただけでは、マイグレーションの情報が反映されていないため、以下のようなエラー画面が表示されます。"heroku run rails db:migrate"でマイグレーションの情報を反映しましょう。

f:id:takuya_karatsu:20201115195549j:plain

僕はこの3つのステップが理解できていなくて、上記のようなエラーが出てしまいました。

やはり、テキストで学ぶのと実際に実装を行うのは違うなあと実感しています。

 

以上、ProtoSpaceで苦戦したところについて書いてきました。

また、実装中に苦戦したところなどあればまとめていこうと思います。

ProtoSpace実装で苦戦したところ2

前回から3回に分けて、発展編の実装課題であるProtoSpace実装の際に自分が詰まったところについてアウトプットしています。内容については以下の通りです。

[目次] 

  1. MVCを実行する一連の流れ
  2. 画像投稿機能
  3. Herokuでのデプロイ

 

今回は、2. 画像投稿機能について書いていこうと思います。

画像投稿機能実装に関しては、Active Storageというツールを用いました。

詳細な内容はテキストの内容と重複するので、記述は避けますが、僕が頭の中で整理されていないと行けないと考える実装の流れを以下のようにまとめました。

 

・ツールの導入

以下のa)およびb)を導入。

a) 画像アップロード機能

・Active Storage(Gem

b) 画像加工ツール

ImageMagickHomebrewからインストール) 

・MiniMagick(Gem

ImageMagickGem) 

 

・画像の保存機能実装

a) 画像の添付

・ has_one_attachedメソッド(モデルファイルに以下のように記述)

f:id:takuya_karatsu:20201114181552j:plain

has_one_attachedメソッド使用例

 b)  画像の保存を許可するストロングパラメータの設定

→permit(:content, :image)...のようにhas_one_attachedメソッドで定義したファイル名の保存を許可する

 

・保存した画像の表示

・image_tagメソッド

ファイル名がimageの場合、以下のように記述

<%= image_tag モデル名.image %>

 

以上、3つの流れをきちんと理解していることが、Active Storageを用いた実装の上では大事だと感じました。(ちなみに、僕は実装時点で全く整理できておらず、苦労しました...)

次回は、最後の"3. Herokuでのデプロイ"について書いていこうと思います。

ProtoSpace実装で苦戦したところ1

今回から3回に分けて、発展編の実装課題であるProtoSpace実装の際に自分が詰まったところについてアウトプットしていきます。内容については以下の通りです。

[目次] 

  1. MVCを実行する一連の流れ
  2. 画像投稿機能
  3. Herokuでのデプロイ

 

今回は、1. MVCを実行する一連の流れについて書いていこうと思います。

MVCの各役割において定義する内容はざっくり以下の通りです。

[M]

rails g model...でモデルを作成

マイグレーションファイルにREADMEの内容を記述し、rails db:migrate

・モデル内にアソシエーションを定義

[V]

・ビューファイルに必要事項を記入(必要に応じて、部分テンプレートを配置)

[C]

rails g controller...でコントローラーを作成

・各アクションを定義(ストロングパラメーターやbefore_actionもここで定義)

 

実際に実装をしてみて、超基本的なことですが、上記のMとCの流れを完全にインプットしている必要があるなと感じました。

カリキュラムでは、チェックボックス形式でto doが与えられていましたが、そうじゃない場合にあれ次何やるんだっけ?となっていたと思います。

特に、Cの各アクションの定義については、PicTweetあたりの各アクションの内容は、必要な変数の内容、ActiveRecordメソッド、ストロングパラメータなどなど重要な内容がギュッと凝縮されているので、実装で手を動かしながら、最終的に全て覚えているぐらいでいいと思いました。

f:id:takuya_karatsu:20201114173814j:plain

PicTweetのtweets_controller.rb

以上、MVCを実行する一連の流れについてでした。

次回は、"2. 画像投稿機能"についてまとめていこうと思います。

学習で大事にしているメモの習慣

今日は、TECH CAMP受講開始から3週間学習してきた中で自分が行っているメモ書きについて書こうと思います。 

 

どうやってメモをしているか

僕の場合、主にiPadの「OneNote」というアプリを使ってメモをしています。

僕が思う紙ではなくiPadを使うメリットは、以下の3点です。

①ファイルが管理しやすい

②後で読み返しやすい

③内容を削除・追加しても見た目が汚くならない

 

①、②については文字通り、どこに何のファイルがあるかを管理しやすく、iPadさえ持っていればどこでもメモを読み返すことが出来ます。

特に、仕事の隙間時間に見返したり、前の章の内容を振り返りたい時などに活用しています。

③については、「OneNote」のスペース挿入や消しゴム機能を用いて、見た目を整えることが出来ます。

好きな場所に遡って文字を書いたり、見た目が汚くならずにすぐに文字を消したり出来るので重宝しています。

f:id:takuya_karatsu:20201011193015j:plain

OneNoteのヘッダー

 

何をメモしているか

メモの内容としては主に以下の2点です。

・テキスト関連→重要だと思う部分、前の章に戻って復習が必要だった部分

・ミス関連→問題を解いて間違えた部分、コードを書いてエラーした部分 

f:id:takuya_karatsu:20201011194230j:plain

実際に書いたメモ

今はテキストを進めている段階なので、テキスト関連のメモが多いですが、アプリ開発などを今後やっていく際には、ミス関連のメモを活用して、自分が書くコードのエラーの傾向なども分析出来たらなと思っています。

 

以上、自分がやっているメモ書きについて書いてきました。

もし、皆さんがやっているメモ書きの方法などあればコメントして頂けるとうれしいです。

 

はじめまして

はじめまして

からつと申します。

 

プログラミング未経験な私ですが、

9月からテックキャンプで本格的にプログラミング学習を始めました。

 

ブログ初挑戦ですが、自分が何か見ている方に何かお届け出来ることはないかと考えたところ、次の2点に関して主に発信していこうかなと思います。

 

1. プログラミング学習中に学んだこと

2. おすすめの学習方法

 

1に関しては、プログラミング初心者の私が出来るようになったこと、つまづいたことなど学習中の気付きを発信していきます。

 

2に関しては、自分なりにいい勉強方はないかと日々模索する中で、これはいいなと思って取り入れている学習方法を発信していきます。

 

更新は主に週末更新を予定しています。

見て頂ける方が、なるべく見やすくかつ有益な情報をお届けできるよう精進して参りますので、よろしくお願いします!