gpt4 book ai didi

ruby-on-rails - 对 Rails 4 API 的 POST 请求的空参数

转载 作者:行者123 更新时间:2023-12-04 18:07:51 24 4
gpt4 key购买 nike

我刚开始使用 Rails 编写代码以创建 API,但我已经碰壁了。我正在尝试使用 POST 请求创建用户。这是我使用脚手架命令创建的用户 Controller :

def create
@user = User.new(params[:user])

logger.info(@user.to_json)

if @user.save
render json: @user, status: :created, location: @user

else
render json: @user.errors, status: :unprocessable_entity
end

结束

用户模型只有一个验证 validates :name, presence: true 并且一直失败,因为显然参数总是空的。为了测试我在 Chrome 上使用 Postman - REST Client 的调用,我访问的 URL 是 http://localhost:3000/users 。我不确定我做错了什么。使用表单和 http 的相同设置工作正常。

我尝试以不同的方式格式化 JSON 对象,但没有任何效果。到目前为止我用过:

  1. {"用户":{"名称":"测试"}}
  2. {{"名称":"测试"}}

最佳答案

因为它不允许它通过。 Rails 4 引入了强参数

您可以使用相邻的方法,然后调用它。

def create
@user = User.new(user_params)

logger.info(@user.to_json)

if @user.save
render json: @user, status: :created, location: @user
else
render json: @user.errors, status: :unprocessable_entity
end
end

...
private
def user_params
params.require(:user).permit(:field1, :field2)
end

关于ruby-on-rails - 对 Rails 4 API 的 POST 请求的空参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22465252/

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