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

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

新規登録して質問してみよう
ただいま回答率
85.47%
JQL (JIRA Query Language)

JQLは、JIRA Query Languageの略です。JIRA専用のクエリ言語で課題を検索することができます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

Q&A

0回答

67閲覧

rails 7非同期システムturboが機能しない

ninjawanko3d

総合スコア5

JQL (JIRA Query Language)

JQLは、JIRA Query Languageの略です。JIRA専用のクエリ言語で課題を検索することができます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ruby on Rails 7

Ruby on Rails 7は、2021年12月に正式リリースされました。Ruby on Railsのバージョン7であり、フロントエンド開発環境を大幅に刷新。Node.jsを用いない構成がデフォルトになっています。

0グッド

0クリップ

投稿2023/10/23 11:40

編集2023/10/24 10:13

現在SNSアプリをrails7を用いて作成しており、turboによる非同期のいいねシステムを作ろうと思っていた矢先以下のようなエラーが発生してしまいました泣


以下のサイトを参考にturboを用いてハートボタン(コード1の13行目)を押したところ図3のようなビューに移行しました。
ハートボタンの色といいね数を非同期で変更したいのですがどうすればよいでしょうか?
ご教授お願いします

参考サイト
https://blog.aiandrox.com/posts/tech/2021/09/10/

https://zenn.dev/shita1112/books/cat-hotwire-turbo/viewer/turbo-streams-fetch

図3
イメージ説明


コード1

erb/app/viws/likes/_likes

1<% if @posted %> 2 <% post = @posted %> 3<% end %> 4<%# turbo_stream.update :like_buttons do %> 5 <turbo_stream id="like_buttons"> 6 <% if Liker.find_by(content: session[:user_id],content2: post.id) %> 7 <%= link_to "/likes/#{post.id}/destroy" do %> 8 <span class="fa fa-heart liked-btn"></span> 9 <% end%> 10 <% else %> 11 <%# link_to "/likes/#{post.id}/create", remote: true do %> 12 <%# 下記リンクをクリックしたとき、`like_buttons ` という名前の Turbo Frame を更新する %> 13 <%= link_to "/likes/#{post.id}/create" do %> 14 <span class="fa fa-heart unliked-btn"></span> 15 <% end %> 16 <% end %> 17 <div> 18 <%= Liker.where(content2: post.id).count %> 19 </div> 20 </turbo-frame> 21<%# end %>

コード2

ruby/app/controllers/likescontroller

1class LikesController < ApplicationController 2 before_action :authenticate_user 3 def create 4 @posted = Posted.find_by(id: params[:post_id]) 5 @posts = Posted.all.order(created_at: :desc) 6 if !Liker.find_by(content: session[:user_id], content2: params[:post_id]) 7 @like = Liker.new( 8 content: session[:user_id], 9 content2: params[:post_id] 10 ) 11 @like.save 12 end 13 render turbo_stream: turbo_stream.update( 14 'like-buttons', 15 partial: 'likes/likes', 16 locals: { post: @posted} 17 ) 18 #format.html { render :_likes } 19 #render :_likes 20 end 21 22 def destroy 23 @like = Liker.find_by( 24 content: session[:user_id], 25 content2: params[:post_id] 26 ) 27 @like.destroy 28 redirect_to("/") 29 end 30 31end

コード3

erb/app/views/home/top

1 2<% @posts.each do |post| %> 3<div class="posted-detail-overlay"></div> 4<div class="posted-detail"> 5 <%= link_to("削除する", "/#{post.id}/destroy") %> 6</div> 7<div> 8 <div class="posting-container" id="favorite_<%= post.id%>"> 9 <a class="three-dot-leader">...</a> 10 <%= link_to post.user.content3, "/users/#{post.user.id}" %> 11 <%= link_to post.content, "/posts/#{post.id}", class: 'posted-show' %> 12 <%= render "likes/likes", post: post %> 13 14 <div class="post-time"> 15 <%= post.created_at%> 16 </div> 17 </div> 18</div> 19<% end %> 20

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問