javascript - 取消默认 Controller 操作的重定向

标签 javascript ruby-on-rails redirect respond-to

有这个链接:

= link_to "Close", close_ticket_path(:id => ticket.id), :onclick => $(this).closest('tr').remove()", :remote => true

路由到tickets_controller#close:

  def close
    @ticket  = Ticket.find(params[:id]).update_attribute(:status, "closed")
  end

默认情况下,此操作将重定向到views/tickets/close如何禁用此默认重定向? 我知道如何指定自定义重定向,但这不是我需要的。 View 由脚本管理,数据库在操作中修改,因此不需要更多操作,我不希望页面刷新。 render 也不起作用,因为相关内容是动态加载的,所以基本上什么都不做正是我所需要的。

我发现了这个解决方法,例如包含 respond_to :js 并创建空的 close.js.erb 文件,或者将 :onclick 移至此文件,但我想要这样做地道地说。事实上,该链接现在可以通过操作中的 respond_to :js 正常工作(此处未包含),但控制台会抛出 Missing template 错误,这不太好。我查看了Rails Redirecting ,在 JS with Rails , Rendering guide ,还有一些,但无济于事。

最佳答案

试试这个:

def close
  @ticket  = Ticket.find(params[:id]).update_attribute(:status, "closed")
  render nothing: true, :status => 200
end

关于javascript - 取消默认 Controller 操作的重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27335921/

相关文章:

javascript - 获取对象类型的名称

ruby-on-rails - Rails 设计多态 - 使用 Ajax 获取部分渲染

ruby-on-rails - 通过 Ruby 的 MtGox 价格行情

html - 我应该将网站的所有网址重定向到 https 吗?

php - .htaccess 删除网址中的问号

javascript - ajax成功后如何更改文本

javascript - native 滚动延迟或停止 iOS 上的 JavaScript 执行

javascript - 使用 ember.js 和 ember 数据添加 Preloader : Integrating NProgress. js

ruby-on-rails - 如果从redis作业的渲染器中调用image_path返回错误的URL

c - 如何在 C 中使用 UNIX 终端输入重定向?