복붙노트

[RUBY-ON-RAILS] 루비 온 레일즈 버튼 아약스처럼

RUBY-ON-RAILS

루비 온 레일즈 버튼 아약스처럼

나는 다른 사람의 사이에서 모델 사용자 및 모델의 내용과 루비 온 레일스 프로젝트가 있습니다. 나는 콘텐츠 "와 같은"에 사용자를 가능하게 원했고, 나는 acts_as_votable 보석에 있음을 완료했습니다.

순간에, 좋아하는 시스템이 작동하고 있지만 페이지를 등 버튼 (LINK_TO)을 누를 때마다 새로 고침하고 있습니다.

나는 버튼을 업데이트하기 위해,이 사용하여 Ajax를 할 싶습니다 및 좋아하는 페이지를 새로 고침 할 필요없이 카운터.

내 컨텐츠에서 -> 쇼보기,이 내가 가진 것입니다 :

<% if user_signed_in? %>
  <% if current_user.liked? @content %>
      <%= link_to "Dislike", dislike_content_path(@content), class: 'vote', method: :put %>
  <% else %>
      <%= link_to "Like", like_content_path(@content), class: 'vote', method: :put %>
  <% end %>
  <span> · </span>
<% end %>

<%= @content.get_likes.size %> users like this
<br>

콘텐츠 컨트롤러는이 좋아하는 / 싫어하는을 수행합니다

def like
    @content = Content.find(params[:id])
    @content.liked_by current_user
    redirect_to @content
end

def dislike
    @content = Content.find(params[:id])
    @content.disliked_by current_user
    redirect_to @content
end

그리고 내 routes.rb 파일이 내가 가진 것입니다 :

resources :contents do
    member do
        put "like", to: "contents#like"
        put "dislike", to: "contents#dislike"
    end
end

내가 말한 것처럼, 좋아하는 시스템은 잘 작동하지만, 좋아하는 사용자 프레스 뒤에 카운터 나 버튼과 같은 업데이트하지 않습니다. 대신, 그 트릭을, 나는 컨트롤러 액션에서 redirect_to의 @content를 호출합니다.

어떻게 간단한 Ajax 호출로이를 구현 수 있을까? 그것을 할 수있는 또 다른 방법이 있나요?

해결법

  1. ==============================

    1.당신은 다양한 방법으로 그렇게 할 수 있으며, 간단한 방법은 다음과 같이 간다 :

    당신은 다양한 방법으로 그렇게 할 수 있으며, 간단한 방법은 다음과 같이 간다 :

    당신은 아마 디스플레이 "N 사용자가이 좋아"업데이트하려는. 그 archieve하려면 다음과 같이하십시오 :

    동적으로 "싫어"하고 반대 부사장은 "같은"에서 링크를 변경하려면 이러한 수정이 필요합니다 :

  2. from https://stackoverflow.com/questions/24221367/like-button-ajax-in-ruby-on-rails by cc-by-sa and MIT license