2016-06-22 49 views
1

我需要將/author/john重定向到/about/john。這裏是我的代碼:如何重定向路線(使用通配符),但如果找不到重定向,轉到默認路徑?

get "/author/:name", to: redirect("/about/%{name}") 

的問題是,不是所有連接到author名字在about等價物。例如。也許有一個/author/mary但沒有/about/mary

用我目前的代碼,輸入/author/mary將重定向到/about/mary,然後引發404錯誤。

問題

是否有可能有一個重定向路徑(如上面),默認爲一個URL(例如默認簡直是​​)如果重定向的URL沒有找到什麼?

回答

1

回答你的問題「不」。除非你編寫了一個代碼來查詢你的數據庫來檢查記錄是否存在(我假定「Mary」和其他人來自數據庫表)。

但是你可以在你的控制器中做到這一點。而不是使用.find()方法,則拋出一個ActiveRecord::RecordNotFound錯誤,然後導致返回404錯誤,請使用find_by_id()where(),並在未找到記錄時重定向。