동기화 기능 구현
입문
동기화된 기능의 설치를 기억하기 위해 확인하면서 설치했다.
기억하기 위해서 기술도 겸하고
사용자 등록 기능은 "devise"를 사용하여 만듭니다.
이번에는 투고의 상세한 페이지에 기능을 설치했다.
개발 환경
macOS Big Sur 11.1
Ruby 2.6.5
Rails 6.1.1
작업대
중간 테이블을 준비했어요. "좋아!!!"누르다
'누가 좋아요를 눌렀어요','어떤 댓글이 좋아요를 눌렀어요'는 Likes 표에 사용자와 앨범 ID를 등록합니다.
모범
연관된 정의는 다음과 같습니다.
user.rbclass User < ApplicationRecord
has_many :likes
end
album.rbclass Album < ApplicationRecord
has_many :likes
end
like.rb
class Like < ApplicationRecord
belongs_to :user
belongs_to :album
end
라우팅 선택
likes는'create'와'destroy'만 사용하기 때문에 두 개를 설정합니다.
routes.rbRails.application.routes.draw do
post 'like/:id' => 'likes#create', as: 'create_like'
delete 'like/:id' => 'likes#destroy', as: 'destroy_like'
end
URI Pattern 지정에 대한 자세한 정보
TechTechMedia: [Rails Base] 자유형 URL!라우팅 이름을 지정하는 방법 설명
이해하기 쉽다.
컨트롤러
컨트롤러를 설치하다.
'create'와'destroy'를 실시합니다.
likes_controllerclass LikesController < ApplicationController
def create
Like.create(user_id: current_user.id, album_id: params[:id])
redirect_to album_path
end
end
def destroy
Like.find_by(user_id: current_user.id, album_id: params[:id]).destroy
redirect_to album_path
end
end
보기
...전에 "user.rb"에서 하나 더 기술하십시오.
이것은 "album_id"가 존재하는지 확인하기 위한 기술입니다.
존재하는지 없는지 "좋아!"를 클릭합니다.
user.rbdef liked_by?(album_id)
likes.where(album_id: album_id).exists?
end
뷰를 설명합니다.
if 문장에서 전환할 수 있습니다.
albums/show.html.erb<div class="pic-likes">
<ul class="like-content">
<% if current_user.liked_by?(@album.id) %>
<li>
<%= link_to destroy_like_path(@album), method: :delete, class: "like-link" do %>
<%= icon('far', 'kiss-wink-heart', 'いいね!!', class: 'like-part2') %>:<%= @album.likes.count %>
<% end %>
</li>
<% else %>
<li>
<%= link_to create_like_path(@album), method: :post, class: "like-link" do %>
<%= icon('far', 'meh-blank', 'いいねを押す', class: 'like-part') %>:<%= @album.likes.count %>
<% end %>
</li>
<% end %>
</ul>
</div>
이번에는'font-awesome'도 아이콘을 사용했습니다.
아이콘 사용
내가 표시하고 싶은 방법도 많지만 이해하기 쉬워서 github를 보면서 설치했다.
SaimonL:fontawesome-sass
이쪽도 참고했어.
pikawaka: [Rails] font-awesome-rails의 사용법을 철저히 설명해주세요!
pikawaka: [Rails] font-awesome-sass의 사용법을 철저히 설명해주세요!
순서
1. "Gemfile"에 기술하기
Gemfilegem 'font-awesome-sass', '~> 5.9.0'
2. 설치
bundle install
3.app/assets/stylesheets/application.scss에 다음 내용을 추가합니다.
application.css를 사용하면 scss로 변환됩니다.@import "font-awesome-sprockets";
@import "font-awesome";
4. 뷰에서 설명합니다.
albums/show.html.erb<li>
<%= link_to destroy_like_path(@album), method: :delete, class: "like-link" do %>
# アイコンのスタイル アイコンの名前 記述したいテキスト クラス
<%= icon('far', 'kiss-wink-heart', 'いいね!!', class: 'like-part2') %>:<%= @album.likes.count %>
# => <i class="far fa-kiss-wink-heart like-part2"></i> いいね!!
<% end %>
</li>
아이콘의 스타일은 세 가지 정도입니다.
macOS Big Sur 11.1
Ruby 2.6.5
Rails 6.1.1
작업대
중간 테이블을 준비했어요. "좋아!!!"누르다
'누가 좋아요를 눌렀어요','어떤 댓글이 좋아요를 눌렀어요'는 Likes 표에 사용자와 앨범 ID를 등록합니다.
모범
연관된 정의는 다음과 같습니다.
user.rbclass User < ApplicationRecord
has_many :likes
end
album.rbclass Album < ApplicationRecord
has_many :likes
end
like.rb
class Like < ApplicationRecord
belongs_to :user
belongs_to :album
end
라우팅 선택
likes는'create'와'destroy'만 사용하기 때문에 두 개를 설정합니다.
routes.rbRails.application.routes.draw do
post 'like/:id' => 'likes#create', as: 'create_like'
delete 'like/:id' => 'likes#destroy', as: 'destroy_like'
end
URI Pattern 지정에 대한 자세한 정보
TechTechMedia: [Rails Base] 자유형 URL!라우팅 이름을 지정하는 방법 설명
이해하기 쉽다.
컨트롤러
컨트롤러를 설치하다.
'create'와'destroy'를 실시합니다.
likes_controllerclass LikesController < ApplicationController
def create
Like.create(user_id: current_user.id, album_id: params[:id])
redirect_to album_path
end
end
def destroy
Like.find_by(user_id: current_user.id, album_id: params[:id]).destroy
redirect_to album_path
end
end
보기
...전에 "user.rb"에서 하나 더 기술하십시오.
이것은 "album_id"가 존재하는지 확인하기 위한 기술입니다.
존재하는지 없는지 "좋아!"를 클릭합니다.
user.rbdef liked_by?(album_id)
likes.where(album_id: album_id).exists?
end
뷰를 설명합니다.
if 문장에서 전환할 수 있습니다.
albums/show.html.erb<div class="pic-likes">
<ul class="like-content">
<% if current_user.liked_by?(@album.id) %>
<li>
<%= link_to destroy_like_path(@album), method: :delete, class: "like-link" do %>
<%= icon('far', 'kiss-wink-heart', 'いいね!!', class: 'like-part2') %>:<%= @album.likes.count %>
<% end %>
</li>
<% else %>
<li>
<%= link_to create_like_path(@album), method: :post, class: "like-link" do %>
<%= icon('far', 'meh-blank', 'いいねを押す', class: 'like-part') %>:<%= @album.likes.count %>
<% end %>
</li>
<% end %>
</ul>
</div>
이번에는'font-awesome'도 아이콘을 사용했습니다.
아이콘 사용
내가 표시하고 싶은 방법도 많지만 이해하기 쉬워서 github를 보면서 설치했다.
SaimonL:fontawesome-sass
이쪽도 참고했어.
pikawaka: [Rails] font-awesome-rails의 사용법을 철저히 설명해주세요!
pikawaka: [Rails] font-awesome-sass의 사용법을 철저히 설명해주세요!
순서
1. "Gemfile"에 기술하기
Gemfilegem 'font-awesome-sass', '~> 5.9.0'
2. 설치
bundle install
3.app/assets/stylesheets/application.scss에 다음 내용을 추가합니다.
application.css를 사용하면 scss로 변환됩니다.@import "font-awesome-sprockets";
@import "font-awesome";
4. 뷰에서 설명합니다.
albums/show.html.erb<li>
<%= link_to destroy_like_path(@album), method: :delete, class: "like-link" do %>
# アイコンのスタイル アイコンの名前 記述したいテキスト クラス
<%= icon('far', 'kiss-wink-heart', 'いいね!!', class: 'like-part2') %>:<%= @album.likes.count %>
# => <i class="far fa-kiss-wink-heart like-part2"></i> いいね!!
<% end %>
</li>
아이콘의 스타일은 세 가지 정도입니다.
class User < ApplicationRecord
has_many :likes
end
class Album < ApplicationRecord
has_many :likes
end
class Like < ApplicationRecord
belongs_to :user
belongs_to :album
end
Rails.application.routes.draw do
post 'like/:id' => 'likes#create', as: 'create_like'
delete 'like/:id' => 'likes#destroy', as: 'destroy_like'
end
class LikesController < ApplicationController
def create
Like.create(user_id: current_user.id, album_id: params[:id])
redirect_to album_path
end
end
def destroy
Like.find_by(user_id: current_user.id, album_id: params[:id]).destroy
redirect_to album_path
end
end
...전에 "user.rb"에서 하나 더 기술하십시오.
이것은 "album_id"가 존재하는지 확인하기 위한 기술입니다.
존재하는지 없는지 "좋아!"를 클릭합니다.
user.rb
def liked_by?(album_id)
likes.where(album_id: album_id).exists?
end
뷰를 설명합니다.if 문장에서 전환할 수 있습니다.
albums/show.html.erb
<div class="pic-likes">
<ul class="like-content">
<% if current_user.liked_by?(@album.id) %>
<li>
<%= link_to destroy_like_path(@album), method: :delete, class: "like-link" do %>
<%= icon('far', 'kiss-wink-heart', 'いいね!!', class: 'like-part2') %>:<%= @album.likes.count %>
<% end %>
</li>
<% else %>
<li>
<%= link_to create_like_path(@album), method: :post, class: "like-link" do %>
<%= icon('far', 'meh-blank', 'いいねを押す', class: 'like-part') %>:<%= @album.likes.count %>
<% end %>
</li>
<% end %>
</ul>
</div>
이번에는'font-awesome'도 아이콘을 사용했습니다.아이콘 사용
내가 표시하고 싶은 방법도 많지만 이해하기 쉬워서 github를 보면서 설치했다.
SaimonL:fontawesome-sass
이쪽도 참고했어.
pikawaka: [Rails] font-awesome-rails의 사용법을 철저히 설명해주세요!
pikawaka: [Rails] font-awesome-sass의 사용법을 철저히 설명해주세요!
순서
1. "Gemfile"에 기술하기
Gemfile
gem 'font-awesome-sass', '~> 5.9.0'
2. 설치
bundle install
3.app/assets/stylesheets/application.scss에 다음 내용을 추가합니다.application.css를 사용하면 scss로 변환됩니다.
@import "font-awesome-sprockets";
@import "font-awesome";
4. 뷰에서 설명합니다.albums/show.html.erb
<li>
<%= link_to destroy_like_path(@album), method: :delete, class: "like-link" do %>
# アイコンのスタイル アイコンの名前 記述したいテキスト クラス
<%= icon('far', 'kiss-wink-heart', 'いいね!!', class: 'like-part2') %>:<%= @album.likes.count %>
# => <i class="far fa-kiss-wink-heart like-part2"></i> いいね!!
<% end %>
</li>
아이콘의 스타일은 세 가지 정도입니다.여기서 사용할 수 있습니다.↓
fontawesome
계수
이 부분은 "좋아!!!"눌리면 계수되는 부분.
count 방법을 사용하고 있습니다.
<%= @album.likes.count %>
이후 css로 좋아하는 색깔과 모양으로 정리합니다.마지막
이쪽도 시간이 많이 걸렸지만 순조롭게 설치됐어요.
다음에도 비동기적인 물건을 설치하고 싶어요.
(이런 느낌도 빨라지고 싶다.)
오늘은 여기까지.수고하셨습니다!!
참고 자료
이 기사는 이해하기 쉽기 때문에 참고로 한다.
TechTechMedia: [Rails] 기능 풀버전!동기화 좋아요, 좋아요, 숫자 표시, 비동기화 좋아요, 아이콘 표시, 각자의 설치 방법 총결산 설명
이것도 참고 가치가 있다.세밀하게 쓰다.
[Rails, JavaScript]는 뛰어난 기능(동기식, 비동기식) 제공
Reference
이 문제에 관하여(동기화 기능 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sumiiii/items/58d0c55c9e4f98713958
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 기사는 이해하기 쉽기 때문에 참고로 한다.
TechTechMedia: [Rails] 기능 풀버전!동기화 좋아요, 좋아요, 숫자 표시, 비동기화 좋아요, 아이콘 표시, 각자의 설치 방법 총결산 설명
이것도 참고 가치가 있다.세밀하게 쓰다.
[Rails, JavaScript]는 뛰어난 기능(동기식, 비동기식) 제공
Reference
이 문제에 관하여(동기화 기능 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sumiiii/items/58d0c55c9e4f98713958텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)