gpt4 book ai didi

javascript - 如何在 js 文件中使用 rails 路径进行 GET 和 ajax 调用?

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

我有一个链接可以在短和长之间切换描述长度。

最初我是通过调用 js 文件创建它的,即只是

# /app/assets/javascripts/toggle_length.js
$.get('/toggle_full_details');

这很好用。 (它使用 css 类来显示/隐藏长描述和短描述)。

但理想情况下,我想为链接使用 rails 路由。

哪些是(相关路线的部分列表):

$ rake routes
Prefix Verb URI Pattern Controller#Action
...
toggle_full_details GET /toggle_full_details(.:format) links#toggle_full_details
toggle_row_shading GET /toggle_row_shading(.:format) links#toggle_row_shading
...
root GET / links#index

所以我将我的 long_or_sort_details.js 文件重命名为 long_or_short_details.js.erb 并尝试使用 rails 路由,但以下尝试均无效,我错过了什么/做错了吗?

$.get({ "<%= toggle_full_details_path %>" }) 
// Gave: undefined local variable or method toggle_full_details_path

$.get({"<%= toggle_full_details_url %>"});
// Gave: undefined local variable or method toggle_full_details_url

$.ajax({url:"/toggle_full_details", type: 'GET' })
// Works ok... but not using routes :(

$.ajax({ url:'<%= toggle_full_details_path %>', type: 'GET' })
// undefined local variable or method `toggle_full_details_path'

仅供引用,我的 app/assets/javascripts/applications.js 包含文件

//= require long_or_short_details

最佳答案

这对我有用:

$.get("<%= Rails.application.routes.url_helpers.toggle_full_details_path %>"); 

如果调用失败,我不想要任何用户消息,因此没有 $.ajaxsuccess:failure: 调用。

如果我想要额外的东西来表示成功或失败,可以使用类似的东西:

$.ajax({
url: "<%= Rails.application.routes.url_helpers.toggle_full_details_path %>",
type: 'GET',
success: function(r) {
$('span#messages').html('<span class="ok">yes</span>');
},
error: function(r) {
$('span#messages').html('<span class="not_ok">no</span>');
}
});

关于javascript - 如何在 js 文件中使用 rails 路径进行 GET 和 ajax 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25951147/

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