我在我的rails應用程序中使用friendly_id作爲我的路線。確定字符串是否僅包含數字
我想確保一個頁面不能被數字ID訪問。
頁是這樣的訪問 - www.myurl.com/myfriendlyidstub
的頁面不應該是這樣的訪問 - www.myurl.com/12345(12345 myfriendlyidstub的ID)
我無法在friendly_id的文檔中找到這樣做的方法。
所以我正在考慮在我的控制器中添加一個方法來檢查帕拉姆是否是數字
def edit
if params[:id].is_numeric? #I need to know how to write this method
not_found #not_found redirects to a 404
end
#rest of the edit action
end
兩個問題 -
我怎樣寫「is_numeric」的方法?
這是做事的好方法嗎?你能看到任何陷阱嗎?
你可能想看看[這個鏈接](http://railsforum.com/viewtopic.php?id=19081)。我沒有看到這種方法的問題,儘管我認爲*如果你喜歡,你可以在路由本身中執行正則表達式。 – aishwarya 2012-01-10 12:11:26
另一方面,白名單將是比黑名單更好的方法(指定什麼是有效的輸入,而不是指定無效的輸入) – 2012-01-10 12:45:44