【发布时间】:2018-02-23 16:17:51
【问题描述】:
我正在尝试将用户信息从后端发送回前端,但我很难理解应该如何格式化。
控制器
def create
user = User.new(user_params)
if user.save
auth_token = Knock::AuthToken.new(payload: { sub: user.id })
created_user = {
userEmail: user.email,
userID: user.id
}
respond_to do |format|
format.json { render json: auth_token, created_user }
end
else
respond_to do |format|
format.json { render json: { errors: user.errors.full_messages }, status: :unprocessable_entity }
end
end
end
问题出在成功路径上。当我尝试运行测试时,它给了我这个错误。
错误:
SyntaxError:
/Users/Desktop/Work/ping-party/app/controllers/api/v1/users_controller.rb:23: syntax error, unexpected '}', expecting =>
/Users/Desktop/Work/ping-party/app/controllers/api/v1/users_controller.rb:29: syntax error, unexpected keyword_end, expecting '}'
/Users/Desktop/Work/ping-party/app/controllers/api/v1/users_controller.rb:37: syntax error, unexpected keyword_end, expecting '}'
测试:
context "POST /v1/users" do
it "create a new user" do
post '/api/v1/users',
params: {
user: {
email: "test@idea.com",
password: "password123"
}
}
res = JSON.parse(response.body)
binding.pry
expect(res).to include("jwt")
expect(res).to include("user")
expect(User.count).to eq(1)
end
end
它说有一个语法错误,但在我的一生中,我看不出我做错了什么。任何人都可以帮忙吗?谢谢。
【问题讨论】:
标签: ruby-on-rails json ruby