首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的模型不能在我的Rails API中更新?

为什么我的模型不能在我的Rails API中更新?
EN

Stack Overflow用户
提问于 2019-04-27 06:23:57
回答 1查看 122关注 0票数 0

我正在Rails中开发一个API,并从另一个Rails应用程序与它进行交互。到目前为止,一切都正常工作,使用POST和GET来验证用户、创建记录和检索数据。但是现在我在获取PUT操作来更新记录时遇到了问题。它似乎正确地调用了API,并且API返回了200响应,但从日志来看,Rails甚至不像是在执行UPDATE语句。最奇怪的是没有错误或警告。

这是日志。(数据是伪造的数据,所以我不会费心去修改它)

代码语言:javascript
复制
Started PUT "/affiliates/17" for ::1 at 2019-04-26 17:42:51 -0400
Processing by AffiliatesController#update as HTML
  Parameters: {"id"=>"17", "username"=>"teracole", "email"=>"dan@purdy.io", "first_name"=>"Max", "last_name"=>"Max", "company"=>"Dach LLC", "manager_id"=>"3"}
  [1m[36mUser Load (0.3ms)[0m  [1m[34mSELECT  "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m  [["id", 2], ["LIMIT", 1]]
  ↳ app/controllers/application_controller.rb:12
  [1m[36mAffiliate Load (0.2ms)[0m  [1m[34mSELECT  "affiliates".* FROM "affiliates" WHERE "affiliates"."id" = $1 LIMIT $2[0m  [["id", 17], ["LIMIT", 1]]
  ↳ app/controllers/affiliates_controller.rb:50
  [1m[35m (0.1ms)[0m  [1m[35mBEGIN[0m
  ↳ app/controllers/affiliates_controller.rb:31
  [1m[36mAffiliate Exists (0.3ms)[0m  [1m[34mSELECT  1 AS one FROM "affiliates" WHERE "affiliates"."username" = $1 AND "affiliates"."id" != $2 LIMIT $3[0m  [["username", "tera.cole"], ["id", 17], ["LIMIT", 1]]
  ↳ app/controllers/affiliates_controller.rb:31
  [1m[35m (0.1ms)[0m  [1m[35mCOMMIT[0m
  ↳ app/controllers/affiliates_controller.rb:31
Completed 200 OK in 8ms (Views: 0.9ms | ActiveRecord: 1.0ms)

您可以在日志中看到参数数据。控制器的动作非常简单:

代码语言:javascript
复制
# PATCH/PUT /affiliates/1
  def update
    if @affiliate.update(affiliate_params)
      render json: @affiliate
    else
      render json: @affiliate.errors, status: :unprocessable_entity
    end
  end

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-04-28 00:51:27

事实证明,无论出于什么原因,put方法都要求我识别标头中的内容类型。Post没有这样做,但更改了我的HttParty调用中的行,解决了这个问题:

代码语言:javascript
复制
response = HTTParty.put(put_uri, body: @this_data.to_json, headers: { 'Content-Type' => 'application/json', 'Authorization' => @token })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55875579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档