AJAX에 관해서는 약간의 도움이 필요할 때 총 초보자입니다. posts_controller와 likes_controller가 있습니다.AJAX 성공 후보기에서 요소 변경
사용자가 게시물을 '좋아하거나'좋아할 수 있습니다. 지금은 AJAX를 구현하여 사용자가 게시물을 '좋아할 때마다'또는 '좋아지지 않음'할 때마다 like/unlike가 전환되도록하려고합니다.
AJAX 이전에는 페이지가 새로 고침되고보기의 코드가 주어진 게시물이 현재 사용자에게 마음에 들었는지 여부를 결정합니다. 보기에서 if 문을 실행했는데 결과에 따라 두 가지 양식이 표시되었습니다. 게시물이 아직 마음에 들지 않았 으면 게시물을 '좋아'(작업 작성) 할 양식이 있고, 게시물이 이미있는 경우 좋아, 거기에 게시물 ('행동을 파괴') '과 달리'형태가되었습니다.
AJAX를 사용하여 생성 부분을 구현 했으므로 동적으로 발생하지만보기가 변경되지 않습니다 (터미널/레일 콘솔을 통해 생성 된 것처럼 볼 수 있지만 링크의 텍스트는 동일하게 유지됩니다). 페이지를 새로 고치지 않고보기를 업데이트하는 가장 좋은 방법은 무엇입니까? AJAX를 통해 '유사'링크와 양식을 업데이트해야합니다. jquery를 통해이 작업을 수행하는 유일한 방법은 무엇입니까?
%ul.dropdown-menu
%li
- if current_profile.like?(post)
= form_for current_profile.likes.find_by_likee_id(post), :html => { :method => :delete } do |f|
%a{:href => "javascript:void(0)", :onclick=>"$(this).closest('form').submit()"}
%i.icon-heart.icon-large{:style => "color: #fedc73;"}
Unlike this Post
- else
= form_for current_profile.likes.build(:likee_id => post.id), :remote => true do |f|
= f.hidden_field :likee_id
%a{:href => "javascript:void(0)", :onclick=>"$(this).closest('form').submit()"}
%i.icon-heart-empty.icon-large
Like this Post
create.js.haml 파일 :
는:plain
$(this).closest('form').submit()
어떤 도움은 매우 될 것 뷰의 조각
class LikesController < ApplicationController
def create
@post = Project.find(params[:like][:likee_id])
respond_to do |format|
format.html{
current_profile.like!(@post)
redirect_to :back
}
format.js {
current_profile.like!(@post)
}
end
end
def destroy
@post = Like.find(params[:id]).likee
current_profile.unlike!(@post)
redirect_to :back
end
end
likes_controller : 여기
내 코드입니다 고맙습니다. 정말 고맙습니다!
나는 여기에 내 [질문] [1]에 대답했다. 이것이 머리가 위로 움직일 지 지켜보십시오. [1] : http://stackoverflow.com/questions/10107689/getting-rid-of-form-and-use-just-button-to-create-new-record – Victor