2012-09-17 5 views
0

그래서 내 의견 아래에 같은 버튼이있는 페이지가 있고 전체 페이지를 새로 고치지 않고이를 수행하는 방법을 찾으려고 노력하고 있습니다. 코드는 다음과 같습니다 :좋아요/다른 버튼에 대한 레일의 루비에있는 아약스

- if can? :like, comment 
    = " · " 
    - if likes.find_by_user_id(current_user.id).nil? 
    = link_to "Like", like_comment_path(comment), method: :post 
    - else 
    = link_to "Unlike", unlike_comment_path(comment), method: :post 
- if comment.user == current_user 
    = " · " 
    = link_to "Delete", comment_path(comment), method: :delete, 
    :data => { :confirm => "Are you sure you want to delete this comment?" } 
- if likes.count > 0 
.comment-likes 
    - likers = likes.map { |like| link_to(like.user_name, "#") } 
    - if likers.length > 1 
    - likers = likers.slice(0, likers.length - 1).join(", ").concat(" and " +        likers.slice(-1)) 
    - else 
    - likers = likers[0] 
    = "Liked by #{likers}".html_safe 

좋아요와 달리 방법 변경 : 게시 : 업데이트는 ajax와 post를 사용하여이 기능이 크게 달라졌습니다. 그렇지 않다면 어떻게하면 에이잭스 함수로 만들 것인가.

Heres는 내 comments_controller.rb 물건

def like 
comment_vote = resource.like current_user 
Event.comment_liked!(comment_vote) 
redirect_to discussion_url(resource.discussion) 
end 

def unlike 
resource.unlike current_user 
redirect_to discussion_url(resource.discussion) 
end 

답변

3

= link_to "Like", like_comment_path(comment), method: :post, remote: true

를 그런 다음 likes_controller에 조치를 작성, respond_to는

def create 
    respond_to do |format| 
    format.html { .. your liking code .. } 
    format.js {.. your liking code .. } 
    end 
end 

이것은 다음 create.js.erb를 호출합니다 format.js 귀하의보기 폴더에, 당신은 거기에서 귀하의 HTML을 동적으로 업데이트 할 수 있습니다

+0

감사합니다 오늘 밤 이것을 시도합니다. –

+0

위와 같은 질문에 내 comments_controller.rb 파일을 포함시키는 데 문제가 있습니다. @Amir와 비슷한 기능을 사용하고 싶지 않을 때가 있습니다. –

관련 문제