我正在跟进http://railscasts.com/episodes/250-authentication-from-scratch 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 %>
The 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
方法用于session
在这两种情况下都不会被调用,但是如果 ':remote=>true
那么会议就不知何故搞砸了。在检查 cookie 时,我发现 cookie 没有被破坏,但是当destroy
方法上posts
叫做。不知道为什么会发生这种情况。