ajax - 导轨 : link_to with remote true and opening it in a new tab or window

标签 ajax ruby-on-rails-4

我有一个链接,单击该链接将进行 AJAX 调用。此 AJAX 调用将导致显示模式。

= link_to edit_evaluation_path(evaluation), remote: true

但是,当尝试从链接打开新选项卡时(例如,通过使用鼠标中键单击它),我得到了 ActionController::UnknownFormat: ActionController::UnknownFormat错误,因为该操作不期望以 html 格式响应。以下是相应操作的 respond_to 代码:

respond_to do |format|
  format.js
end

如何阻止用户在另一个选项卡或窗口中打开链接?我是否有义务将 link_to 更改为 button_to?谢谢!

最佳答案

我已经为今天运行的这个问题创建了仅 Javascript 的解决方案。

$.each($("a[data-remote='true']"), function(i, val) {
  $(val).data("url", $(val).attr("href")).attr("href", "javascript:void(0);")
});

$.rails.href = function(el) {
  var $el = $(el);
  return $el.data('url') || $el.data('href') || $el.attr('href');
}

它将直接替换网站上的所有数据远程链接

关于ajax - 导轨 : link_to with remote true and opening it in a new tab or window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24227586/

相关文章:

javascript - 按钮 onclick 事件在第一次单击时未触发

ruby-on-rails - 为什么 assert_select 不接受参数 rails 4.2?

javascript - 使用button_to时将JS参数传递给 Controller

ruby-on-rails - update_attribute 与 update_attributes Rails 4

ruby-on-rails - 更改 ActiveRecord 语句缓存默认 Rails

javascript - Rails 4 ActionController::UnknownFormat format.js 错误

javascript - 在 MVC5 中使用 AJAX 调用

jquery - AJAX 成功响应不起作用 Rails

javascript - 通过 AJAX 使用 $().each 将innerHTML分配给元素不起作用

java - 如何在jsp页面中添加ajax Action ?