我正在Rails 4.2API中构建一个博客(用于棱角前端)。我正在添加用户的设计(我知道),我的控制器测试通过了一切。当我尝试一个curl请求或尝试创建一个用户从我的角度应用程序,我得到一个406不可接受的状态代码。
下面是创建控制器的方法:
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命令:
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我也有这样的资源:
api_users POST /users(.:format) api/users#create {:subdomain=>"api"}我可以更新一个用户,并在没有问题的情况下从curl执行任何其他操作,我在这里看不到问题。任何帮助都是非常感谢的。
发布于 2015-06-19 18:18:02
根据W3,406的响应是:
由请求标识的资源仅能够生成响应实体,这些响应实体具有根据在请求中发送的接受标头不可接受的内容特征。
因此,当您使用cURL时,不需要发送-H 'Accept: application/json' -H 'Content-type: application/json,Rails将自动为您呈现JSON结果。因为您只在控制器中指定了format.json。
Rails希望您以以下方式发送数据:
{ "users": { "email", "person@mail.com" }, ... }当您使用users命令访问服务器时,没有发送cURL。
https://stackoverflow.com/questions/30942960
复制相似问题