"controller1#my_su-6ren">
gpt4 book ai didi

javascript - 将柯里化(Currying)函数从 Rails 传递到 JavaScript

转载 作者:行者123 更新时间:2023-11-28 01:11:49 24 4
gpt4 key购买 nike

我需要将 URL 传递给 .js 文件。此 URL 由 Rails 生成,并且接受一个参数

#routes
get "my_super/:some_id" => "controller1#my_super",

#index.html.haml
:javascript
var myUrlFunc = "#{my_super_url}"; //my_super_url(...) expects one argument

还有一个 .js 文件:

  $.ajax({
url: myUrlFunc($("#active_user_id"));
})
//................

重点是我最初不知道 some_id 因为它是动态选择的,它是从下拉列表中选择的。所以我必须有一个函数 myUrlFunc,它接受一个参数并返回 URL 而不是 URL 本身。我认为这会起作用,但由于错误而没有起作用:

No route matches {:action=>"my_super", :controller=>"controller1"} missing required keys: [:some_id]

我该怎么办?

最佳答案

正如您所发现的,路由助手不会让您在缺少参数的情况下调用它。此外,ruby 不知道如何将 ruby​​ 方法序列化为 javascript 函数。

一个简单(如果不是特别优雅)的方法是将虚拟值传递给 my_super_url。那么你的函数将类似于

var myUrlFunc = function(id){
var base = #{my_super_url("--DUMMY--")};
return base.replace("--DUMMY--", id);
}

关于javascript - 将柯里化(Currying)函数从 Rails 传递到 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24338583/

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