gpt4 book ai didi

jquery - 使用 jQuery ajax get 将 params 中的数据发送到 Rails 后端

转载 作者:行者123 更新时间:2023-12-03 22:39:34 24 4
gpt4 key购买 nike

这多次让我感到困惑,每次我都努力在互联网或万维网上找到一个好的答案。假设我的 javascript 文件中有一个变量

var myLoc = { lat: 35, lon: -110 }

这是我通过使用地理定位之类的东西得到的。我想将此信息发送到后端,以便将其与我要创建的特定帖子关联起来。

假设我的路线是这样的:

resources :users do
resources :posts
end

我不知道这是否是正确的方法,但我想到的是这样的:

$.get('/users/' + JSON.stringify(myLoc) + '/posts/new', function() {console.log("please work")});

我的问题是:

A.这应该有效吗?
B. 这是正确的方法吗?
C. 你能将这样的前端内容发送到后端的任何路由吗?

非常感谢。

最佳答案

您可以通过查询字符串使用 get 将信息发送到页面,然后可以使用它来填充表单所在的 new View 中的字段最终提交给创建操作。

但是,这也会在响应中返回新操作 View 的正文,如果您使用它来异步拉入该页面以进行对话框或其他内容,您可能会需要它。

如果您使用此 ajax 调用来创建帖子,则将 post 发送到帖子 Controller 上的 /create 操作可能会更好。

然后,您可以将 JSON 数据作为 post 发送,当您的 Controller 解析它并创建帖子时,该对象将转换为 params 哈希。

View 中的js:

var url = '/users/' + userId + '/posts/create';
var myLoc = { 'lat': 35, 'lon': -110 };

$.ajax({
type: "POST",
url: url,
data: myLoc
});

在routes.rb中:

match 'users/:user_id/posts/create' => 'posts#create', :via => :post

在 posts_controller.rb 中:

def create
post = Post.new(params[:myLoc])
if post.save!
render :status => 200
else
# exception handling
end
end

关于jquery - 使用 jQuery ajax get 将 params 中的数据发送到 Rails 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19698997/

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