[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.당신은 다양한 방법으로 그렇게 할 수 있으며, 간단한 방법은 다음과 같이 간다 :
당신은 다양한 방법으로 그렇게 할 수 있으며, 간단한 방법은 다음과 같이 간다 :
당신은 아마 디스플레이 "N 사용자가이 좋아"업데이트하려는. 그 archieve하려면 다음과 같이하십시오 :
동적으로 "싫어"하고 반대 부사장은 "같은"에서 링크를 변경하려면 이러한 수정이 필요합니다 :
from https://stackoverflow.com/questions/24221367/like-button-ajax-in-ruby-on-rails by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] getaddrinfo는 : 노드 이름도 servname는 제공 여부를 알려 (0) | 2020.02.29 |
---|---|
[RUBY-ON-RAILS] AWS S3 : 당신은 액세스를 시도하는 버킷은 지정된 엔드 포인트를 사용하여 해결해야 (0) | 2020.02.29 |
[RUBY-ON-RAILS] 레일에서 2.3.8 4.0으로 업그레이드 (0) | 2020.02.29 |
[RUBY-ON-RAILS] 원격 => 진실과 respond_to : 4 AJAX JQuery와 함께 부분적 렌더링 레일 (0) | 2020.02.29 |
[RUBY-ON-RAILS] 어떻게 고안를 사용하여 자신의 역할에 따라 사용자의 홈 (루트) 경로를 재 지정할 수 있습니다? (0) | 2020.02.29 |