2016-03-09 43 views
0

我不確定在這種情況下使用Get或Post路線。Rails獲取或發佈路線?

So Get用於獲取資源,Post用於創建資源。但是如果你實際上只是進入模型數據庫並進行搜索呢?

例如,如果您是通過電話號碼輸入搜索用戶,該怎麼辦。你會使用Get還是Post?

回答

1

在這個例子中,你正在查找一條記錄,這是一個GET請求。我可以理解你爲什麼感到困惑,因爲你正在考慮通過表單傳遞一組參數。

通常,您在創建或更新記錄時使用POST操作(儘管後者使用PUT或PATCH)。我不相信您將電話號碼輸入保存爲一個新的紀錄。您可以將此作爲GET請求,並將電話號碼作爲參數傳遞。在控制器動作中,您可以選取參數並將其傳遞給模型以進行查找。

1

由於您正在嘗試查找用戶記錄,因此您需要使用GET請求。

就像你說的,GET請求會返回給定位置的資源。

所以你可能會對自己說,「我需要從服務器獲取用戶11」。那麼你想寫一個請求到服務器,說:「給我用戶記錄存儲在」/ users/11「 - 如果這是一個有效的路由(即,如果有這樣的記錄),服務器說,「在這裏,你去」作爲響應。

這是相對於一個POST請求。

在POST請求,你可能對自己說,「我需要更新用戶11的電話號碼「,那麼在這種情況下,你將寫入一個POST請求,其路由類似於」users/11/edit「,並且你將傳遞額外的數據到這個記錄。在這種情況下,只要用戶11存在,服務器就會響應「OK,我做到了。」

-1

如果你正在處理搜索功能,在表格中是否使用POST或GET方法進行融合。

對我來說,無論是兩人的是GOOD使用,它只是一個顯示在搜索URL 沒有參數的偏好,因爲它會給你相同 ActiveRecord的結果。

1

一般而言,您希望使用GET請求查詢資源/資源。 POST創建資源。 PUT用於更新完整資源。 PATCH用於部分更新資源。最後DELETE銷燬資源。

由於您的要求是查詢資源/資源,所以請使用GET請求。在這種情況下使用GET請求的另一個好處是,最終用戶可以在搜索後爲網址添加書籤,並且如果稍後訪問已加入書籤的網址,它仍然可以正常工作。但是,如果您使用POST並將其呈現而不是重定向,那麼如果最終用戶將url標記爲書籤,則當瀏覽器稍後嘗試訪問帶書籤的url時,將發出警告。