在 Rails 中,過去可以:anchor通過呼叫以下命令將變數(此處為:)從一個控制器傳遞到下一個控制器:
redirect_to user_profile_path(anchor: 'details')
但試圖趕上:anchor下一個控制器,即像這樣......
puts params[:anchor].inspect
puts request.params[:anchor].inspect
...失敗。為什么?
(我在 Rails 7 上,以防萬一。)
編輯:
奇怪的是,當我使用不同的key,即test...
redirect_to user_profile_path(anchor: 'details', test: 'test-value')
...然后...
puts params[:test].inspect
...在日志檔案中正確回傳值:
'test-value'
uj5u.com熱心網友回復:
這與 Rails 幾乎沒有關系,更多的是與瀏覽器和 URI 的作業方式有關。
Anchor 是url_for的一個特殊選項,用于向 URL 添加一個URI 片段(又名錨點或哈希)。
客戶端在請求 URI 時不會將 URI 片段發送到服務器。它通過設計對服務器透明。但是客戶端將接受來自服務器的片段。
如果您想在 GET 請求中將附加資訊從客戶端傳遞到服務器,您需要通過添加查詢字串引數、自定義標頭或 cookie 來完成。
使用user_profile_path(anchor: 'details', test: 'test-value')因為test:不是命名選項,而是添加查詢字串引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/468133.html
標籤:轨道上的红宝石
