2011-04-28 63 views

回答

22

您可以

request.referer 
+2

但引用者提供完整的url。我需要路徑 – rails101 2011-04-28 13:56:56

+9

http://www.ruby-doc.org/stdlib/libdoc/uri/rdoc/classes/URI.html#M009387 – Fivell 2011-04-28 14:02:13

+2

感謝您的有用鏈接@Fivell。我已經爲它的信息添加了一個答案,以便未來的訪問者不會受到鏈接腐蝕的困擾。 – chadoh 2011-11-15 12:56:55

104

request.referer訪問引薦返回一個字符串,但您可以使用Ruby's URI Module把它包起來,然後簡單地問它的路徑:

if URI(request.referer).path == '/adsense' 
+4

我正在使用該URI(request.referer)行並持續獲取URI :: InvalidURIError:錯誤的URI(不是URI?)錯誤。任何想法這可能是什麼? – kateray 2012-04-20 17:21:45

+0

很難說沒有更多的信息它可能是什麼。嘗試在日誌中只打印'request.referer',看看爲什麼Ruby可能不喜歡它。 (PS:你可能想問你的問題作爲一個單獨的問題,而不是作爲對另一個問題的答案的評論。:-)) – chadoh 2012-04-26 22:19:19

+0

檢查出[此問題](http://stackoverflow.com/questions/17148470/ignore-urirequest-referer-path-for-previous-url-when-visiting-directly-to-a-pa)瞭解更多關於「URI :: InvalidURIError」的信息。 – 2013-12-27 15:25:54

1

嘗試使用此方法get請求引用路徑

request.env['HTTP_REFERER'].sub(request.base_url, '') => '/adsense'