간단한 인증을 위해 http://railscasts.com/episodes/250-authentication-from-scratch을 따르고 있습니다. 그것은 예상대로 작동합니다. 다음과 같이레일 : 관련없는 개체를 파괴 한 후 사용자가 다음과 같이 로그 아웃했습니다. remote => true
<%= content_tag_for(:li, post) do %>
<%= link_to 'Delete', post, :confirm => 'Are you sure?', :method => :delete, :remote => true %>
<% end %>
그것은 index.html.erb
내에서 호출한다 : 나는 다음과 같은 partial
내 응용 프로그램에서 모델이
<%= render :partial => @posts.reverse %>
개체가 성공적으로 파괴되는 경우 호출되는, 다음과 같이 destroy.js.erb
입니다. delete
버튼을 클릭에
$('#<%= dom_id(@post) %>').css('background', 'red');
$('#<%= dom_id(@post) %>').hide();
는 post
객체가 제대로 삭제됩니다와 destroy.js.erb
도 제대로 렌더링됩니다. 하지만 어떻게 든 사용자는 로그 아웃됩니다. 내 posts_controller.rb
에 대한 코드는 다음과 같은 :
def destroy
logger.error 'in destroy'
@post = Job.find(params[:id])
@post.destroy
respond_to do |format|
format.html { redirect_to(posts_url) }
format.xml { head :ok }
format.js
end
end
모든 단서를 왜이 문제? :remote=>true
다음 세션이 어떻게 든 '경우
delete
링크에서
:remote => true
를 제거하는 경우는, 다음 사용자 내가 어느 경우에 호출되지 않습니다
session
에 대한
destroy
방법에 문을 로그인해야합니다. 로그인 만 남아 망했다. 쿠키를 검사 할 때 쿠키가 파괴되지 않았지만 메서드가
posts
에 호출 될 때 쿠키가 수정된다는 사실을 발견했습니다. 이것이 일어날 이유가 확실하지 않습니다.
Rails 3.0.9에서'link_to_remote' 메소드가 정의되지 않았습니까? 나는'% = link_to_remote 'Delete', : url => url_for (post), : method => : delete, : confirm => '정말입니까?' %>'. – brayne
옵션 # 1 & 3은 현재 시나리오에서는 불가능하지만 알아두면 좋습니다! 그리고,'button_to'도 훌륭하게 작동합니다 .. – brayne
'link_to_remote'와 같이 보입니다. 나는 대답에서 그것을 제거했다. – Matthew