노래하듯 이야기하고, 춤추듯 정복하라.

[Ruby on Rails] 좋아용 기능 구현하기: acts_as_votable 본문

프로그래밍/Ruby & Rails

[Ruby on Rails] 좋아용 기능 구현하기: acts_as_votable

hyeoke 2018. 8. 9. 16:12

# pin(게시글) 모델에 좋아요기능 추가하기

- acts_as_votable 이란 루비 gem을 사용한다.

- Gemfile에 Gem 추가하기

# Gemfile
gem 'acts_as_votable', '~> 0.11.1'


터미널
-> $bundle install


# 마이그레이션

- 터미널

-> $rails g acts_as_votable:migration

-> $rails db:migrate


# 모델에 코드추가: pins.rb

# pin.rb
acts_as_votable


# 라우팅 설정: routes.rb

# routes.rb
resources :pins do
  member do
     put "like", to: "pins#upvote"
  end
end


# 컨트롤러에서 upvote 액션 생성: pins_controller.rb

# pin_controller.rb
before_action :find_pin, only: [:show, :edit, :update, :destroy, :upvote]

def upvote
  @pin.upvote_by current_user
  redirect_to :back
end


# views파일 코드 추가

# show.html.erb
<%= link_to like_pin_path(@pin), method: :put, class: "btn btn-default" do %>
  <span class="glyphicon glyphicon-heart">
    <%= @pin.get_upvotes.size %>
  </span>
<% end %>


Comments