簡體   English   中英

Rails URI(request.referer).path regexp

[英]Rails URI(request.referer).path regexp

我想從購物車控制器知道我來自哪個 URL:如果我來自 '/' 或 '/search' 參數是 Serie 模型,如果我來自 /'1-9+' 它是一個季節模型,最后/'1-9+/1-9+' 是章節模型。

我已經看到URI(request.referer).path顯示了路徑,但我不知道如何制作正則表達式。

有什么簡單的方法可以知道它來自什么觀點? 我在存儲它們時遇到問題,因為它們是不同的模型,並且參數是 primary_key 所以我不知道我必須在哪個模型上搜索該鍵。

區分這些請求的更好方法是不使用正則表達式,而是在 routes.rb 文件中聲明適當的路由

get '/' => 'series#index'

得到 '/search' => 'series#search'

得到 '/:season' => 'seasons#show'

得到 '/:season/:chapter' => 'chapters#show'

在最后一條路線中, params[:season] 和 params[:chapter] 將根據您的 URL 設置

如果在控制器操作中您想知道請求來自哪個路由,最好讓 rails 路由為您處理正則表達式部分,您可以簡單地從 routes.rb 本身添加標識符作為額外參數。

get '/' => 'your_controller#your_action', :type => "Series"
get '/search' => 'your_controller#your_action', :type => "Series"
get '/:season' => 'your_controller#your_action', :type => "Season"
get '/:season/:chapter' => 'your_controller#your_action', :type => "Chapter"

在這種情況下,標識符將作為 params[:type] 在您的控制器操作中可用

同樣作為一個好習慣,永遠不要用變量開始你的路線。 始終命名它們。 否則,它們將開始與任何其他路線匹配。 例如,使用get 'some_namespace/:season'而不是get '/:season'

暫無
暫無

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

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