gpt4 book ai didi

ruby-on-rails - $.AJAX 用于在 rails 中创建多条记录

转载 作者:行者123 更新时间:2023-12-04 05:14:23 24 4
gpt4 key购买 nike

我正在使用 Ruby on Rails,我有一个按钮可以通过 AJAX 创建一个帖子,使用这个:

$.ajax({
beforeSend: function(xhr) {
xhr.setRequestHeader(
'X-CSRF-Token',
$('meta[name="csrf-token"]').attr('content'))},
url: "/posts/",
type: "POST",
data: {
post: {
title: "Cheese",
content: "Cake",
}
}
});

例如,如何格式化数据以一次创建多个帖子
posts = [
{
title: "Cheese",
content: "Cake"
},
{
title: "Key Lime",
content: "Pie"
}
]

所以我可以用一个 POST 插入多个对象?

我有一个标题和内容列表。我是否必须从中构建一个 JSON 对象?

不管这是否是好的 Rails 实践,我该怎么做?另外,我可以在哪里寻找如何格式化此类 HTTP 请求?

最佳答案

您的 jQuery 调用不会有太大变化:

$.ajax({
beforeSend: function(xhr) {
xhr.setRequestHeader(
'X-CSRF-Token',
$('meta[name="csrf-token"]').attr('content'))},
url: "/posts/",
type: "POST",
contentType: "application/json",
data: JSON.stringify({
posts: [
{
title: "Cheese",
content: "Cake",
},
{
title: "Key Lime",
content: "Pie"
}
]
})
});

在您的 Rails 操作中,您将能够通过 params[:posts] 以散列数组的形式访问您的帖子。 .
class ThingsController < ApplicationController
def batch_create
params[:posts].each do |post|
Post.create post
end
end
end

说明

使用 JSON.stringify导致您的数据被序列化为 JSON。套装 contentTypeapplication/json将“Content-Type: 'application/json'”标题添加到您的 POST。这将提示 Rails 将您的 POST 解释为 JSON。

关于ruby-on-rails - $.AJAX 用于在 rails 中创建多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14474505/

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