[英]Rails Receive HTTP POST Request
我有一個Rails應用,該應用從NGINX模塊接收POST請求。 該請求如下所示:
Parameters: {"name"=>"asdadsasdads", "type"=>"live"}
我想取這個名字,並在我的數據庫中檢查它的名稱是否相同,如果是,我想還給200,如果不是404。
def publish
ssss = Ssss.find_by_name(params[:id])
if ssss.name == params[:name]
head 200, content_type: "text/html"
else
head 404, content_type: "text/html"
end
end
這給了我一個500 Internal Server錯誤。
如果我刪除“ sssss.name”並創建一個“:name”(我只是在測試),它會給我一個404。如果我從else語句中刪除“ head 404,content_type:“ text / html”給我200,但每個請求都會通過,即使它與我的數據庫中的請求不同。
我什至不知道這應該如何工作,而且我在使用Google時遇到了麻煩。 有人能幫助我嗎? 什么是正確的?
謝謝!
更新1:
def publish
ssss = Ssss.find_by_name(params[:name])
if ssss == params[:name]
head 200, content_type: "text/html"
else
head 404, content_type: "text/html"
end
end
那就是我現在正在使用的。 它可以給我一個404,即使應該沒問題?!
"name"=>"55b5807bbde1", "type"=>"live"}
Ssss Load (0.1ms) SELECT "ssss".* FROM "ssss" WHERE "ssss"."name" = ? LIMIT 1 [["name", "55b5807bbde1"]]
如果我將其更改為find(params [:id]),它會給我500
在撰寫本文時,您似乎遇到的問題是,您正在將類Ssss
的對象存儲在變量ssss
,然后將該對象與String
進行比較。 這將返回false,因為對象不是同一類,從而使您陷入404塊。
嘗試將Ssss.name
與params[:name]
進行比較,看看會得到什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.