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

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

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

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

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Q&A

0回答

653閲覧

rubyでいいねの非同期化をしたい

susume

総合スコア13

Ruby on Rails 5

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

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

0グッド

0クリップ

投稿2020/07/08 10:05

###解決したいこと
いいねが非同期でできるように実装したい

前提

現在、ruby on rails でwebアプリを開発中です。
アプリは、投稿機能があり、いいねボタンも作成しました。

redirect_toをつけていいねボタンを作成したらページが遷移していいね処理がされるように実装はできました。
ただ、やはりユーザーの利便性を考えていいねは非同期通信したいと考えております。

発生している問題

いくつかの記事を参考にいいねの非同期をトライしてみたのですが、ページをリロードしないといいねが反映されません。

該当のソースコード

index.html.haml

ruby

1.posts-profile-box__favoritesBox 2 .posts-profile-box__favoritesBox__favorite 3 = render partial: 'favorites/favorite', locals: { post: post} 4 .posts-profile-box__favoritesBox__count 5 = post.favorites.count

_favorite.html.haml

-if current_user.already_favorited?(post) = link_to post_favorites_path(post), method: :delete, remote: true do = icon('fas', 'thumbs-up') -else = link_to post_favorites_path(post), method: :post, remote: true do = icon('far', 'thumbs-up')

create.js.erb,destroy.js.erb

$('.posts-profile-box__favoritesBox__favorite').html("<%= escape_javascript(render 'favorites/favorite', post: @post);

favorite_contriller

class FavoritesController < ApplicationController def create @post = Post.find(params[:post_id]) @favorite = current_user.favorites.create(post_id: params[:post_id]) @favorite.save # redirect_back(fallback_location: posts_path) end def destroy @post = Post.find(params[:post_id]) @favorite = current_user.favorites.find_by(post_id: @post.id) @favorite.destroy # redirect_back(fallback_location: posts_path) end end

試したこと

いいね非同期のやり方
https://qiita.com/fumikao/items/373caa60b77f27f2dbdd
https://qiita.com/hayabusa3703/items/2b916e652a1dc85bb6e3

create.js.erbのクラス部分がコードないで白文字になっているので、うまく読み込めていないのかなと思っています

ご不明点があればお申し付けください。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問