質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1333閲覧

本番環境の非同期でのいいね機能の実装

kei__3

総合スコア7

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/09/24 13:39

前提・実現したいこと

プログラミング初学者です。現在オリジナルのアプリを制作しています。
https://qiita.com/fumikao/items/373caa60b77f27f2dbdd
こちらを参考に非同期でのいいね機能を実装しました。ローカル環境ではうまく動いたのですが、herokuで本番環境にデプロイすると、クリックしても動かない状態になります。解決方法教えていただけますでしょうか。

該当のソースコード

==============================app/view/layouts/application.html.erb=============================== <!DOCTYPE html> <html> <head> <title>Viewhome</title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> <%= render 'layouts/shim' %> </head> <body> <%= render 'layouts/header' %> <div class="container"> <% flash.each do |message_type, message| %> <div class="alert alert-<%= message_type %>"><%= message %></div> <% end %> </div> <%= yield %> </body> </html> ================================app/javascript/packs/application.js============ // This file is automatically compiled by Webpack, along with any other files // present in this directory. You're encouraged to place your actual application logic in // a relevant structure within app/javascript and only use these pack files to reference // that code so it'll be compiled. require("@rails/ujs").start() require("turbolinks").start() require("@rails/activestorage").start() require("channels") require("jquery") // Uncomment to copy all static images under ../images to the output folder and reference // them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>) // or the `imagePath` JavaScript helper below. // // const images = require.context('../images', true) // const imagePath = (name) => images(name, true) //= require jquery //= require rails-ujs //= require_tree . ===============================app/view/users/_like.html.erb======================================= <% if Like.find_by(user_id: current_user.id, post_id: @post.id) %> <%= link_to "/posts/#{@post.id}/likes", method: :delete, remote: true do %> <span class="fa fa-heart like-btn-unlike"></span> <% end %> <% else %> <%= link_to "/posts/#{@post.id}/likes", method: :post, remote: true do %> <span class="fa fa-heart like-btn"></span> <% end %> <% end %> <%= @post.likes.length %> =====================================like_controller.erb===================================== class LikesController < ApplicationController before_action :logged_in_user before_action :set_post def create @like = Like.create(user_id: current_user.id,post_id: @post.id) end def destroy @like=Like.find_by(user_id: current_user.id, post_id: @post.id) @like.destroy end private def set_post @post = Post.find(params[:post_id]) end end

試したこと

https://qiita.com/avicii2314/items/1c51f506678c6a3e6bc3
こちらを参考に<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>をapp/view/layouts/application.html.erbに追加したのですが変化ありませんでした。

補足情報(FW/ツールのバージョンなど)

Rails 6.0.3.2
ruby 2.7.1
ubuntu 18.04 LTS

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/09/24 13:44

ブラウザ開発ツールのコンソールにエラーは出ていませんか? あとはサーバー側のログとか。 コードが全く同じであれば本当に何も起きてないことはないと思います。
kei__3

2020/09/24 14:13

heroku のログを見てみると、ActionController::RoutingErrorとでていて、うまくgitにpushできていませんでした。再度プッシュするとうまくできました。ありがとうございます。 これからはしっかりログを見るようにしたいと思います。
guest

回答1

0

自己解決

git pushがうまくできていなかった。
再度プッシュするとうまくできた。

投稿2020/09/24 14:14

kei__3

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問