我可以通过以下代码轻松删除rails应用程序中post
同步
的条目:
观看次数
<% @post.each do |post| %>
<tr>
<td colspan="3"><%= link_to 'Destroy', post, :method => :delete, :confirm => 'Are you sure?', :class => 'btn btn-mini btn-danger' %></td>
</tr>
<% end %>
Controller 类
def destroy
@post = Post.find(params[:id])
@post.destroy
respond_to do |format|
format.html redirect_to(posts_url) }
format.xml { head :ok }
end
end
这很好用。如何使这个销毁
进程异步
。因此,我不需要添加路由
或刷新页面
。
编辑
添加更多说明
任务是使destroy
方法异步
。这样客户端就不会等待响应,并且destroy
方法将在后台async
运行。而且 destroy 方法没有保证完成时间。
另一个例子可能是:我必须一次删除多个帖子。
最佳答案
尝试remote: true
选项,
<%= link_to 'Destroy', post, :method => :delete, remote: true, :confirm => 'Are you sure?', :class => 'btn btn-mini btn-danger' %>
def destroy
@post = Post.find(params[:id])
@post.destroy
# Just Guessing you have @posts to refresh and `posts_template` using it.
@posts = Post.all
respond_to do |format|
format.html redirect_to(posts_url) }
format.xml { head :ok }
format.js { render 'posts.js.erb' }
end
end
posts.js.erb
$('some_element').replaceWith('<%=j render 'posts_template' %>');
请根据需要进行更改。我只是猜测。
关于ruby-on-rails - 如何在 Rails 中异步执行 Controller.destroy 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31129766/