前提・実現したいこと
現在ruby on rails でアプリケーションを作成しており、いいね機能をつけたいと思っています。
いいねのcreate,destroyは投稿一覧からも詳細ページからも出来るようにしたいです。
いいねのcreate,destroyをしたら画面の推移はせずそのままの画面でいたいです
つまり投稿一覧でいいねをしたら投稿一覧のままで、投稿詳細ページでいいねをしたら投稿詳細ページのままにするのはどうしたら良いでしょうか自分なりに調べたのですがredirectの書き方がわかりません。
発生している問題・エラーメッセージ
投稿詳細ページでいいねをしたら詳細ページのままいるのですが、投稿一覧ページでいいねをすると投稿詳細ページにredirectしてしまいます。 それはコントローラーのredirect先をそのように指定しているからなのですが。 自分なりに調べたのですがredirectの書き方がわかりません。
該当のソースコード
ruby
1 2 3class FavoritesController < ApplicationController 4 def create 5 book = Book.find(params[:book_id]) 6 favorite = current_user.favorites.new(book_id: book.id) 7 favorite.save 8 redirect_to book_path(book) 9 end 10 def destroy 11 book = Book.find(params[:book_id]) 12 favorite = current_user.favorites.find_by(book_id: book.id) 13 favorite.destroy 14 redirect_to book_path(book) 15 end 16end 17
show
1 2<%= render 'layouts/sidebar', book: @book, user: @book_show.user %> 3<br> 4<br> 5<br> 6<div class='col-xs-9'> 7<h1>Book detail</h1> 8<% if @book_show.user_id == current_user.id %> 9 <table class="table"> 10 <thead> 11 <tr> 12 <td colspan="1"></td> 13 <td>Title</td> 14 <th>Opinion</th> 15 <th>favorites</th> 16 <th colspan="2"></th> 17 </tr> 18 </thead> 19 <%= %> 20 <tbody> 21 <tr> 22 23 <td><%= link_to user_path(@book_show.user_id)do%> 24 <%= attachment_image_tag @book_show.user , :profile_image, size: "60x60",format: 'jpeg', class: " pull-left profile-img", fallback: "no_image.jpg" %><br> 25 <%= @book_show.user.name %> 26 <% end %> 27 </td> 28 <td><%= @book_show.title %></td> 29 <td><%= @book_show.body %></td> 30 <!-- favorites --> 31 <td> 32 <% if @book_show.favorited_by?(current_user) %> 33 <li> 34 <%= link_to book_favorites_path(@book_show.id), method: :delete do %> 35 <i class="fa fa-heart" aria-hidden="true" style="color: red;"></i> 36 <%= @book_show.favorites.count %> いいね 37 <% end %> 38 </li> 39 <% else %> 40 <li> 41 <%= link_to book_favorites_path(@book_show.id), method: :post do %> 42 <i class="fa fa-heart-o" aria-hidden="true"></i> 43 <%= @book_show.favorites.count %> いいね 44 <% end %> 45 </li> 46 <% end %> 47 </td> 48 <!-- favorites --> 49 <td><%= link_to "Edit", edit_book_path(@book_show.id) %></td> 50 <td><%= link_to "Destroy", book_path(@book_show.id), method: :delete, data: {confirm: "削除しますか?"} %></td> 51 </tr> 52 </tbody> 53 </table> 54<% else %> 55 <table class="table"> 56 <thead> 57 <tr> 58 <td colspan="1"></td> 59 <td>Title</td> 60 <th>Opinion</th> 61 <th>favorites</th> 62 <th colspan="2"></th> 63 </tr> 64 </thead> 65 <%= %> 66 <tbody> 67 <tr> 68 69 <td><%= link_to user_path(@book_show.user_id)do%> 70 <%= attachment_image_tag @book_show.user , :profile_image, size: "60x60",format: 'jpeg', class: " pull-left profile-img", fallback: "no_image.jpg" %><br> 71 <%= @book_show.user.name %> 72 <% end %> 73 </td> 74 <td><%= @book_show.title %></td> 75 <td><%= @book_show.body %></td> 76 <!-- favorites --> 77 <td> 78 <% if @book_show.favorited_by?(current_user) %> 79 <li> 80 <%= link_to book_favorites_path(@book_show.id), method: :delete do %> 81 <i class="fa fa-heart" aria-hidden="true" style="color: red;"></i> 82 <%= @book_show.favorites.count %> いいね 83 <% end %> 84 </li> 85 <% else %> 86 <li> 87 <%= link_to book_favorites_path(@book_show.id), method: :post do %> 88 <i class="fa fa-heart-o" aria-hidden="true"></i> 89 <%= @book_show.favorites.count %> いいね 90 <% end %> 91 </li> 92 <% end %> 93 </td> 94 <!-- favorites --> 95 <td colspan="2"></td> 96 </tr> 97 </tbody> 98 </table> 99<% end %> 100</div> 101
index
1<%= render 'layouts/sidebar', book: @book, user: @user %> 2<div class='col-xs-9'> 3<h1>Books</h1> 4<table class="table"> 5 <thead> 6 <tr> 7 <th colspan="1"></th> 8 <th>Title</th> 9 <th>Opinion</th> 10 <th>favorites</th> 11 </tr> 12 </thead> 13 <% @books.each do |book|%> 14 <tbody> 15 <tr> 16 <td><%= link_to user_path(book.user_id)do%> 17 <%= attachment_image_tag book.user, :profile_image, size: "60x60", format: 'jpeg', class: "pull-left profile-img", fallback: "no_image.jpg" %></td> 18 <% end %> 19 <td><%= link_to book.title, book_path(book.id)%></td> 20 <td><%=book.body%></td> 21 22 <!-- favorites --> 23 <td> 24 <% if book.favorited_by?(current_user) %> 25 <li> 26 <%= link_to book_favorites_path(book.id), method: :delete do %> 27 <i class="fa fa-heart" aria-hidden="true" style="color: red;"></i> 28 <%= book.favorites.count %> いいね 29 <% end %> 30 </li> 31 <% else %> 32 <li> 33 <%= link_to book_favorites_path(book.id), method: :post do %> 34 <i class="fa fa-heart-o" aria-hidden="true"></i> 35 <%= book.favorites.count %> いいね 36 <% end %> 37 </li> 38 <% end %> 39 </td> 40 <!-- favorites --> 41 </tr> 42 </tbody> 43 <% end %> 44 </table> 45</div> 46
補足情報(FW/ツールのバージョンなど)
何か不足している情報がありましたら言って下さい
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。