前提、解決したいこと
ブログアプリを作成しています。
ローカルで問題なく動くアプリがherokuデプロイをするとエラーとなってしまいますので、その原因追及をしたいです。
基本的な投稿機能に加えて、これまでに
各投稿に対するコメント機能
イイね機能の実装(kaminari、デザイン変更のためbootstrapを使用)
を実装しています。
ローカル環境では全ての機能がエラーなく使えますがherokuを使用したサーバーでは投稿詳細ページに移行しようとすると、タイトルのとおり以下のエラー文が表示されます。
We're sorry, but something went wrong.
heroku logをみたところ、以下のようなエラー文が表示。already_liked?がnilとのことですが、、、
当該のエラーぺージ、コードも貼らせていただきます。(エラー文は中央より少し下に記載があります。)
ActionView::Template::Error (undefined method `already_liked?' for nil:NilClass):
routes.rb
Rails.application.routes.draw do resources :images devise_for :users root to: 'posts#index' resources :posts, except: :index do resources :comments, only: :create resources :likes, only: [:create, :destroy] end resources :users, only: :show end
user.rb
class User < ApplicationRecord :recoverable, :rememberable, :validatable has_many :posts has_many :comments has_many :likes, dependent: :destroy has_many :liked_posts, through: :likes, source: :post def already_liked?(post) self.likes.exists?(post_id: post.id) end end
posts/show.html.haml
.like-form - if current_user.already_liked?(@post) = link_to icon('far', 'thumbs-up'), post_like_path(@post), class: "like-btn", method: :delete - else = link_to icon('far', 'thumbs-up'), post_likes_path(@post), class: "like-btn", method: :post = @post.likes.count
herokuについてですが、heroku run rake db:migrateの実行、
また git status及びgit push heroku masterを実行しEverything up-to-dateであることを確認しています。
初心者で説明不足であるかもしれませんが、アドバイスいただけましたら幸いです。
どうぞよろしくお願いします。
あなたの回答
tips
プレビュー