前提・実現したいこと
tweeterのようにindexのファイルにいいね機能の実装をしたいと思いましたが
1つずつの投稿にいいねをつけたいのですが全部つづいたいいね表示になってしまいます。
dbには3つの情報が入っておりその一つ一つにつけれず
3つが重なってついている状況です
今の現状の写真
該当のソースコード
ruby
1config/routes.rb 2 3Rails.application.routes.draw do 4 devise_for :users 5 root "halls#index" 6 resources :users, only: [:edit, :update] 7 resources :top_page, only: [:index] 8 resources :halls, only: [:index] do 9 collection do 10 get 'search' 11 end 12 end 13 post '/like/:hall_id' => 'likes#like', as: 'like' 14 delete '/like/:hall_id' => 'likes#unlike', as: 'unlike' 15end
ruby
1# halls_controller 2 3class HallsController < ApplicationController 4 def index 5 if params[:user_id] 6 @user = User.find(params[:user_id]) 7 @halls = @user.halls 8 else 9 @halls = Hall.all 10 end 11 end 12end
haml
1views/halls/index.html.haml/ 2 3.hall 4 - if @halls.present? 5 - @halls.each do |h| 6 .hall__name 7 = h.name 8 = render partial: 'halls/halls', collection: @halls, as: :hall 9 .hall__image 10 = image_tag h.image 11 .hall__place 12 = h.place 13 %div.eye 14 %i.fa.fa-eye 15 %span.text6 1000 16 .hall__link 17 = link_to top_page_index_path(current_user.id) do 18 詳細をみる → 19
haml
1views/halls/_halls.html.haml/ 2 3= render 'likes/like_links', hall: hall
haml
1views/likes/_like_links.html.haml/ 2 3%div.like-link{id: "like-link-#{hall.id}"} 4 - if current_user.likes.find_by(hall_id: hall.id) 5 = link_to unlike_path(hall.id), method: :delete, remote: true do 6 .btn.btn-default.fa.fa-heart{id: "heart-#{hall.id}"} 7 = hall.likes.count.to_s 8 - else 9 = link_to like_path(hall.id), method: :post, remote: true do 10 .btn.btn-default.fa.fa-heart-empty{id: "heart-#{hall.id}"} 11 = hall.likes.count.to_s
haml
1views/halls/_halls.html.haml/ 2= render 'likes/like_links', hall: hall
ruby
1# likes_controller 2 3class LikesController < ApplicationController 4 before_action :set_variables 5 6 def like 7 like = current_user.likes.new(hall_id: @hall.id) 8 like.save 9 end 10 11 def unlike 12 like = current_user.likes.find_by(hall_id: @hall.id) 13 like.destroy 14 end 15 16 private 17 18 def set_variables 19 @hall = Hall.find(params[:hall_id]) 20 @id_name = "#like-link-#{@hall.id}" 21 @id_heart = "#heart-#{@hall.id}" 22 end 23end
試したこと
indexのファイルの
= render partial: 'halls/halls', collection: @halls, as: :hall
この部分の場所を入れ替えて見る。
CSSで調節しようとするができず...
という状況です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/03 04:04