프로그래밍/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 %>