Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在使用ajax时,如何将id从js传递到rails?_Javascript_Ruby On Rails_Ruby_Ajax_Routes - Fatal编程技术网

Javascript 在使用ajax时,如何将id从js传递到rails?

Javascript 在使用ajax时,如何将id从js传递到rails?,javascript,ruby-on-rails,ruby,ajax,routes,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.appl

如何调用铁路线路并从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,
url:“+”&表_行=“+行,
但我有一个错误:-

undefined local variable or method `id' for#<#<Class:0x00000001ca3220>:0x007f6228c792f0>
(in /...linker/app/assets/javascript/verifying_link.js.erb)
的未定义局部变量或方法'id'#
(在/…linker/app/assets/javascript/verifying_link.js.erb中)

您无法直接在js文件中访问Rails值。您可以在url中传递值,也可以在视图中创建隐藏块。然后您可以读取这些值。

您无法直接在js文件中访问Rails值。您可以在url中传递值,也可以在视图中创建隐藏块。然后您可以读取这些值

  • 将其插入链接
  • 将其作为数据传递
  • --

    路线

    正如您已经尝试过的,您可以通过路由本身传递它:

    # app/assets/javascript/verifying_link.js
    $(document).on("click", ".element", function(){
       $.ajax({
         url: "/verify_link/"+id+"&table_row="+row
       });
    });
    
    方法是从HTML中包含
    id

    您的
    ajax
    无疑将由事件触发。该事件将对应于一个HTML元素,该元素现在可以具有
    数据
    ,或
    id
    属性(由于):

    这里的区别在于,如果希望包含其他数据,可以将其包含在
    data
    属性中。此外,您需要确保您的路由与您希望作为数据发送的路由相对应(即
    成员
    路由需要将
    id
    附加到URL)

  • 将其插入链接
  • 将其作为数据传递
  • --

    路线

    正如您已经尝试过的,您可以通过路由本身传递它:

    # app/assets/javascript/verifying_link.js
    $(document).on("click", ".element", function(){
       $.ajax({
         url: "/verify_link/"+id+"&table_row="+row
       });
    });
    
    方法是从HTML中包含
    id

    您的
    ajax
    无疑将由事件触发。该事件将对应于一个HTML元素,该元素现在可以具有
    数据
    ,或
    id
    属性(由于):

    这里的区别在于,如果希望包含其他数据,可以将其包含在
    data
    属性中。此外,您需要确保您的路由与您希望作为数据发送的路由相对应(即
    成员
    路由需要将
    id
    附加到URL)

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