gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:06 25 4
gpt4 key购买 nike

如何调用铁路路线并从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com