0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

rails&vueでherokuにデプロイする際に参考になったこと

Posted at

はじめに

Rails 6.0.3.5
ruby 2.6.5
yarn 1.22.10
にてデプロイを実行した。

アプリ概要

投稿サイト
・jwtによるログインログアウト機能
・投稿機能(ログイン後投稿可、投稿者のみ削除編集可)
・プロフィール編集機能

エラー内容

デプロイは成功し、
ログイン機能は正常に動いたのだが、
POST機能、EDIT機能を行う際に、
検証ツールのconsoleにて、

401 Unauthorized

エラーが出現、

なぜ、ログインしているにも関わらず401が出現するのか、

protect_from_forgery with: :null_session

になっていることを確認し、

skip_before_action :verify_authenticity_token

を追加。

すると、今度は、 

500 (Internal Server Error)

が出現、

$ heroku logs

にてエラー内容を確認したところ、

undefined method `post' for nil:NilClass

というエラー内容、
また、プロフィール編集時のエラーは、

undefined method `update' for nil:NilClass

となりました、、、

原因検索1

ローカル環境で動いているため、
[post]や[update]が定義されていないということは考えにくい。

def create
    post = current_user.posts.create!(post_params) #ここのcurrent_user
    render json: post, serializer: postSerializer
  end

postする前のcurrent_userが渡っていなと推測。

なぜcurrent_userが取れていないのか、
local環境とproduction環境の違いをチェック。

config/enviroments/development.rbとproduction.rbの違いを確認した。
認証に関わりそうな部分はなく、
特にここが原因ではないみたい。

原因検索2

jwtが送信できているかを、ブラウザ検証ツールのnetworkタブで確認する.
Authorization: Bearer にて、トークンが到達していることを確認。

原因検索3

ローカル環境で、問題なく動いているため、
再度、herokuにて問題がないことを確認、
herokuのsettings/Reveal Config Varsにて、、、、、

master_keyの設定をしていませんでした。。。

secret_key_baseを設定し安心し切っていましたが、
思わぬところに原因がありました。

補足

rails & vueのデプロイ
(herokuにpushした後)につきましては、
ログアウト → ログインをしてから、挙動を確かめるようにしましょう。

最後に

初心者のうちは思いもよらないところにミスがある可能性が高いので、
深読みしすぎず、やるべきことをしっかりやってあるかの確認を、
怠らないように気をつけたいと思います。

ご視聴いただきありがとうございます。
誰かの役に立てば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?