[英]Rails/React App Signup throwing 500 internal server error
我正在嘗試通過 React 前端的注冊表單將用戶數據保存到我的 Rails DB 以獲取用戶信息。 我的路線和 controller 寫得正確(至少我認為)和下面的 fetch 請求,但我在提交時不斷收到 500 內部錯誤。 請讓我知道我缺少什么,任何幫助將不勝感激!
我的路線:
資源:用戶,僅:[:show, :create]
我在 UsersController 中的創建操作:
def create
user = User.create!(user_params)
if user.valid?
session[:user_id] = user.id # remembering who our user is
render json: user, status: :ok
else
render json: {error: user.errors.messages}
end
end
最后是來自 React 前端的 Signup.js 組件的獲取請求,我在“獲取”的行上收到錯誤
fetch(`/users`,{
method:'POST',
headers:{'Content-Type': 'application/json'},
body:JSON.stringify(user)
})
.then(res => {
if(res.ok){
res.json().then(user => {
history.push(`/users/${user.id}`)
})
這可能只是您問題的一部分,但首先創建,然后要求有效性是倒退的。
改為執行以下操作:
def create
user = User.new(user_params)
if user.save # <-- will return false if the save fails
user.reload
session[:user_id] = user.id # remembering who our user is
render json: user, status: :ok
else
render json: {error: user.errors.messages}
end
end
如果您真的想明確檢查有效性:
def create
user = User.new(user_params)
if user.valid? # <-- will check validity
user.save
user.reload
session[:user_id] = user.id # remembering who our user is
render json: user, status: :ok
else
render json: {error: user.errors.messages}
end
end
我的猜測是您的錯誤可能來自您的user
變量實際上還沒有 ID 的事實。 您需要保存記錄,然后刷新它以獲取 ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.