좋은 기능을 이용한 사용자 평가

8734 단어 초보자Rails

입문


올리야프 제작에서 구매 기능을 갖추고 있으며 그 상품의 상세한 상황은 구매 후에만 볼 수 있다.
따라서 판매자 사용자의 평가를 관찰함으로써 구매자 사용자의 구매에 결정적인 요소가 되는 기능이 필요하다.
이번에는 상품에 대한 이점 기능을 활용해 사용자 평가(Good or Bad)를 설치했다.

구현 전 완료 조건


1.devise의gem는 이미 가져오고 내용도 기술하였습니다
2. 상품을 아이디어로 정의하고 아이디어 모델, 아이디어 컨트롤러의 제작과 내용을 기술했다
3.user와 idea의 루트 설정, 연결 등도 완료

1. 칭찬 기능 설치(Good 평가)


1. 좋아요 기능을 구현할 때 먼저 UserID 및 IdeaID를 저장하는 Like 테이블(중간 테이블)을 만듭니다.
단말
$ rails g model like post:references user:references
$ rails db:migrate
2.user모델,idea모델,like모델은 각각 관련되어 있다.
사용자 모델
class User < ApplicationRecord
# 中略
  has_many :likes
end
idea 모델
class Idea < ApplicationRecord
# 中略
  has_many :likes
end
라이센스 모델
class Like < ApplicationRecord
  belongs_to :user
  belongs_to :idea
end
3. like 컨트롤러를 만듭니다.이번에는 좋아요만 저장하기 때문에like 컨트롤러에서create 동작만 정의합니다.
단말
$ rails g controller likes
스위치 컨트롤러
class LikesController < ApplicationController
  def create
    Like.create(user_id: current_user.id,idea_id: params[:idea_id])
    redirect_to root_path
  end
end
4. 라우팅을 설정합니다.like는 아이디어와 관련이 있기 때문에 아이디어에 끼워 넣습니다.
routes.rb
Rails.application.routes.draw do
# 中略
  resources :ideas,except: :index do
    resources :likes, only: :create
    # 中略
  end
# 中略
end
5. 뷰 파일에 좋아요 버튼(Good 버튼)을 표시한다고 기술합니다.
views/ideas/show.html.erb
<!--中略-->
<div>
 <%= button_to 'Good', idea_likes_path(@idea), class:'good-btn' %>
</div>
<!--中略-->

2. 칭찬 기능 설치(Bad 평가)


dislike로 기능의 설치(Good 평가)를 교체한 like는 다시 한 번 같은 공정을 진행합니다.
상품 구매 후 화면에는 아래 그림과 같은 Good 단추, Bad 단추가 추가로 표시됩니다.

3. 사용자 평가 보기


이번 목적은 상품을 판매하는 측 사용자의 평가를 명확하게 하기 위해 기능을 설치하는 것이기 때문에 이 사용자의 모든 상품에 있는 Good or Bad의 합계를 얻고 표시해야 한다.사용자 평가가 사용자 페이지에 표시되고 싶어서 show 동작에 기술합니다.
1. 사용자 컨트롤러에서 사용자와 연관된 Idea를 가져옵니다.
사용자 컨트롤러
class UsersController < ApplicationController
  def show
    @user = User.find(params[:id])
    @user_ideas= @user.ideas
  end
end
2. each 방법은 변수 @likes_에 사용count 및 변수 @dislikes_모든count는 총계를 계산하는 코드를 작성합니다.
사용자 컨트롤러
class UsersController < ApplicationController
def show
    @user = User.find(params[:id])
    @user_ideas= @user.ideas
    # Goodの合計を計算する
    @likes_count = 0
    @user_ideas.each do |idea|
      @likes_count += idea.likes.count
    end

  # Badの合計を計算する
    @dislikes_count = 0
    @user_ideas.each do |idea|
      @dislikes_count += idea.dislikes.count
    end
  end
end
3. views/users/show.html.erb에서 @likes_count(Good 평가) 및 @dislikes_count(Bad 평가)를 기술하고 표시합니다.
views/users/show.html.erb
<div class="good-button"><%= @likes_count%></div>    <!--Good評価-->
<div class="bad-button2"><%= @dislikes_count%></div>  <!--Bad評価-->

4. 설치 완료


사용자 페이지에 다음과 같은 이미지를 표시합니다.
Good와 Bad의 수를 표시하면 사용자의 평가를 볼 수 있습니다.

5. 마지막


이번에 실시할 때는 중간 책상 등을 한 번 더 배울 수 있어서 좋은 복습이었다.

6. 보도 참고


아래의 보도를 참고하여 설치하였다.감사합니다.
https://qiita.com/nojinoji/items/2c66499848d882c31ffa
https://freecamp.life/rails-favorite/
https://yumanoblog.com/rails-likes/

좋은 웹페이지 즐겨찾기