簡単な認証のためにhttp://railscasts.com/episodes/250-authentication-from-scratchをフォローしています。期待どおりに動作します。私は自分のアプリに次のモデルを持っていますpartial
:
<%= content_tag_for(:li, post) do %>
<%= link_to 'Delete', post, :confirm => 'Are you sure?', :method => :delete, :remote => true %>
<% end %>
内部では次のように呼び出さindex.html.erb
れます。
<%= render :partial => @posts.reverse %>
は次のdestroy.js.erb
とおりで、オブジェクトが正常に破棄された場合に呼び出されます。
$('#<%= dom_id(@post) %>').css('background', 'red');
$('#<%= dom_id(@post) %>').hide();
delete
ボタンをクリックすると、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
、ユーザーはログインしたままになります。どちらの場合も呼び出されないdestroy
メソッドのログ ステートメントがありますが、' の場合、セッションは何らかの形で台無しになります。Cookie を確認したところ、Cookie は破棄されていませんが、メソッド onが呼び出されると変更されることがわかりました。なぜこれが起こらなければならないのか分かりません。session
:remote=>true
destroy
posts