首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4 Api用户测试失败

Rails 4 Api用户测试失败
EN

Stack Overflow用户
提问于 2015-06-19 16:28:29
回答 1查看 121关注 0票数 0

我正在Rails 4.2API中构建一个博客(用于棱角前端)。我正在添加用户的设计(我知道),我的控制器测试通过了一切。当我尝试一个curl请求或尝试创建一个用户从我的角度应用程序,我得到一个406不可接受的状态代码。

下面是创建控制器的方法:

代码语言:javascript
复制
def create
    user = User.new(user_params)
    if user.save
        render json: user, status: 201
    else
        render json: { errors: user.errors }, status: 422
    end
end

private
def user_params
    params.require(:user).permit(:email, :password, :password_confirmation)
end

我能够在rails控制台上创建没有问题的用户。

下面是我一直在尝试的curl命令:

代码语言:javascript
复制
curl -i -H 'Accept: application/json' -H 'Content-type: application/json' -X POST -d '{"email":"person@mail.com","password":"12345678","password_confirmation":"12345678"}' http://api.myapi.dev/users

我也有这样的资源:

代码语言:javascript
复制
api_users POST   /users(.:format)                            api/users#create {:subdomain=>"api"}

我可以更新一个用户,并在没有问题的情况下从curl执行任何其他操作,我在这里看不到问题。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-19 18:18:02

根据W3406的响应是:

由请求标识的资源仅能够生成响应实体,这些响应实体具有根据在请求中发送的接受标头不可接受的内容特征。

因此,当您使用cURL时,不需要发送-H 'Accept: application/json' -H 'Content-type: application/json,Rails将自动为您呈现JSON结果。因为您只在控制器中指定了format.json

Rails希望您以以下方式发送数据:

代码语言:javascript
复制
{ "users": { "email", "person@mail.com" }, ... }

当您使用users命令访问服务器时,没有发送cURL。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30942960

复制
相关文章

相似问题

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