簡體   English   中英

Rails中的GET,POST,PUT,DELETE請求出現問題

[英]Issue with GET, POST, PUT, DELETE requests in Rails

我一直遇到一個奇怪的問題,即使我指定了請求類型,我的所有鏈接仍會發送GET請求。 例如:

<%= link_to "<i class='fa fa-trash-o'></i>".html_safe, workout_path(workout), method: :delete, data: { confirm: 'Are you sure you want to delete this workout?' }, :class => "delete-workout" %>

將發送GET請求並將我定向到鍛煉顯示頁面,而不是將其刪除。

<%= link_to "Like", '/wellness/4/like',  method: :post, remote: true  %>

做同樣的事情,發送GET請求,將我帶到ID為4的顯示頁面,我得到以下消息:

沒有路線符合[GET]“ / wellness / 3 / like”

這是正確的,因為我的路線是:

post "/wellness/:id/like" => "wellness#like"

我確實正確加載了jQuery ujs,所以這也不是問題。

聽起來您的瀏覽器禁用了Javascript。 用於link_toRails文檔說:

請注意,如果用戶禁用了JavaScript,則該請求將退回到使用GET的狀態。

驗證的一種方法是將link_to更改為button_to ,這是一個更安全的選擇,如關於button_toRails文檔所述

生成包含一個按鈕的表單,該按鈕提交到由選項集創建的URL。 這是確保搜索引擎或加速器不會觸發導致數據更改的鏈接的最安全方法。

通常,最好不要依賴JavaScript的主要功能,因為不能保證您的用戶將其打開。 實施僅在JS啟用時才起作用的主要功能(如刪除和喜歡),不被視為最佳實踐。 相反,請選擇漸進增強或適度降級

我認為該錯誤是因為資源不足。

  • 也許你需要。
 resourses wellness do resourses likes end 

-然后運行#條耙路,您可以看到uri:

GET method /wellness/:id/likes

  • 希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM