gpt4 book ai didi

javascript - Rails Strong Params 无法识别通过 Ajax Post 发送的参数

转载 作者:行者123 更新时间:2023-11-30 15:38:20 25 4
gpt4 key购买 nike

你好,我正在尝试将以下参数从前端发送到我设置了强大参数的后端 Rails Controller 我的 ajax 调用看起来像这样

$("#send").click(function() {
var message = $("#message").val();
var listing_id = $("#listing_id").val();
d = {
'message': message,
'listing_id': listing_id,
'status': "pending"
};

$.ajax({
type: "POST",
url: "/crecits",
data: d
});
});

这是向 Controller 发送以下参数

Parameters: {"message"=>"Hello world", "listing_id"=>"1", "status"=>"some status"}

然后我处理这个的 Controller 看起来像这样

class CrecitsController < ApplicationController
..
def create
@crecit = current_user.crecits.new(crecits_params)
respond_to do |format|
if @crecit.save
format.html { redirect_to @crecit, notice: 'Request Sent' }
else
format.html { redirect_to listings_path, notice: 'your request can not be sent' }
end
end
end

private
def crecits_params
params.require(:crecit).permit(:user_id, :status, :listing_id, :message)
end
..
end

最佳答案

如果你有这样的参数:

params.require(:crecit).permit(:user_id, :status, :listing_id,    :message)

这需要你的参数像这样进来:

{
crecit: {
user_id: ...,
status: ...,
etc
}
}

但是,您的 AJAX 发送的参数没有外部 crecit 哈希。

您可以更改 AJAX 数据以发送嵌套哈希,或者保持不变并删除 .require(:crecit)。 IE。它只是 params.permit(:user_id, :status, etc)

关于javascript - Rails Strong Params 无法识别通过 Ajax Post 发送的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41204815/

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