javascript - 使用ajax时如何将id从js传递到rails?

标签 javascript ruby-on-rails ruby ajax routes

如何调用铁路路线并从 js 传入 ID。

我正在通过我的应用程序(包括在 js 中)切换到使用 Rails 路由

我有一个电话:

# app/assets/javascript/verifying_link.js
$.ajax({
  url: "/verify_link/"+id+"&table_row="+row,

但我想用

# app/assets/javascript/verifying_link.js.erb

但是我怎样才能从 js 传递 id 呢?

我试过:

url: "<%= Rails.application.routes.url_helpers.verify_link_path(id) %>" + "&table_row="+row,

但我得到一个错误:-

undefined local variable or method `id' for#<#<Class:0x00000001ca3220>:0x007f6228c792f0>
(in /...linker/app/assets/javascript/verifying_link.js.erb)

最佳答案

  1. Insert it into the link
  2. Pass it as data

--

路线

正如您已经尝试过的那样,您可以在路线本身中传递它:

# app/assets/javascript/verifying_link.js
$(document).on("click", ".element", function(){
   $.ajax({
     url: "/verify_link/"+id+"&table_row="+row
   });
});

这样做的方法是在您的 HTML 中包含 id

您的 ajax 无疑会被事件触发。该事件将对应于一个 HTML 元素,该元素现在可以具有 dataid 属性(感谢 HTML5 ):

#app/views/controller/view.html.erb
<%= link_to "Your Link", path_to_link, id: @item.id %>

#app/assets/javascript/verifying_link.js
$(document).on("click", ".element", function(){
   var id = $(this).attr("id");

   $.ajax({
      url: "/verify_link/"+id,
   });
});

您需要确保将数据从 HTML 传递给 JS 才能完成这项工作


数据

或者(这仅适用于 collection 路由),您可以在数据标记中发送 id。当然,这不会帮助您在 JS 中包含您的 id,但它仍然非常重要:

#app/assets/javascript/verifying_link.js
$(document).on("click", ".element", function(){
   var id = $(this).attr("id");
   $.ajax({
      url: "/verify_link",
      data: { id: id }
   });
});

这里的区别是,如果你想包含其他数据,你可以将它包含在 data 属性中。此外,您需要确保您的路由与您希望作为数据发送的内容相对应(IE member 路由需要将 id 附加到网址)

关于javascript - 使用ajax时如何将id从js传递到rails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25953762/

相关文章:

ruby-on-rails - PostgreSQL 未安装在 Ruby on Rails 上

ruby - 如何在纯 ruby​​ 应用程序中的 Resque 工作人员内部使用 Logger

javascript - 使用 mocha.js 测试 CLI 应用程序

javascript - 使用 jQuery Hover 更改 css 样式

javascript - 使用表 ID 删除动态 HTML 表?

ruby-on-rails - heroku : suggestions on database management? 上的多个站点

ruby - bundle 安装,如何避免使用源代码库

javascript - 将 URL 中的所有 "&#.."字符替换为正常字符的干净方法

ruby-on-rails - 如何测试 img 标签是否指向现有图像?

jquery - 访问我的排名以计算我的用户的平均值