Ruby on rails 使用ajax请求发回自定义JSON响应

Ruby on rails 使用ajax请求发回自定义JSON响应,ruby-on-rails,json,ruby,Ruby On Rails,Json,Ruby,我试图将用户信息从后端发送回前端,但我很难理解这是如何格式化的 控制器 问题在于成功的道路。当我尝试运行测试时,它给了我这个错误 错误: 测试: 它说有一个语法错误,但我看不出我做错了什么。有人能帮忙吗?谢谢。问题出在这里: render json: auth_token, created_user 语法不正确。可能(根据您的测试)您想要的是: render json: { user: created_user, jwt: auth_token.token) .问题在于: render js

我试图将用户信息从后端发送回前端,但我很难理解这是如何格式化的

控制器 问题在于成功的道路。当我尝试运行测试时,它给了我这个错误

错误: 测试: 它说有一个语法错误,但我看不出我做错了什么。有人能帮忙吗?谢谢。

问题出在这里:

render json: auth_token, created_user
语法不正确。可能(根据您的测试)您想要的是:

render json: { user: created_user, jwt: auth_token.token)
.

问题在于:

render json: auth_token, created_user
语法不正确。可能(根据您的测试)您想要的是:

render json: { user: created_user, jwt: auth_token.token)

.

您可以将身份验证令牌和已创建用户存储在哈希中:

auth_token = Knock::AuthToken.new(payload: { sub: user.id })
created_user = {
  userEmail: user.email,
  userID:    user.id
}
output = { auth_token: auth_token, created_user: created_user }


然后rails可以像json一样呈现输出。

您可以将auth\u令牌和created\u user存储在散列中:

auth_token = Knock::AuthToken.new(payload: { sub: user.id })
created_user = {
  userEmail: user.email,
  userID:    user.id
}
output = { auth_token: auth_token, created_user: created_user }


然后rails可以像json一样呈现输出。

谢谢您的帮助。当我尝试这个时,我得到了这个错误:NoMethodError:undefined方法'to#h'for#你的意思是什么?为了更好。谢谢@mudasobwapp请查看更新。我从未使用过
knock
library,我想您可能会想出如何从
AuthToken
实例中获取jwt。现在它工作了。谢谢你的帮助。当我尝试这个时,我得到了这个错误:NoMethodError:undefined方法'to#h'for#你的意思是什么?为了更好。谢谢@mudasobwapp请查看更新。我从未使用过
knock
library,我想您可能会想出如何从
AuthToken
实例中获取jwt。现在它可以工作了。测试清楚地告诉我们,响应应该有键
“user”
“jwt”
。测试清楚地告诉我们,响应应该有键
“user”
“jwt”
format.json { render json: output }