簡體   English   中英

Rails - 處理404s的任何奇特方式?

[英]Rails - any fancy ways to handle 404s?

我有一個我為一個舊網站構建的rails應用程序,我從另一個cms轉換(用非rails語言,呵呵)。 大多數舊頁面使用routes.rb映射到新頁面。 但仍有一些404。

我是一個rails newb所以我問是否有任何先進的方法來處理404s。 例如,如果我用我的舊語言編程,我會這樣做:

  • 獲取正在訪問的URL(script_name)並解析它。
  • 在數據庫中查找新URL中找到的任何關鍵字,ID等。
  • 如果找到,則重定向到頁面(或者如果找到多個記錄,則在結果頁面上顯示所有記錄並讓用戶選擇)。 使用rails我可能想做:status =>:moving_permanently我猜?
  • 如果找不到,請顯示404。

有沒有你知道的寶石/插件或教程可以處理這樣的事情,如果它甚至可能的話。 或者你能從高層次解釋如何做到這一點嗎? 我不需要完整的代碼示例,只需向正確的方向推進即可。

PS。 這是一個使用單個內容模型的簡單rails 3應用程序。

把它放在路線中(在你擁有的每一條路線之后,這將捕獲每個網址)

match '*url' => 'errors#routing'

現在,在路由操作中的錯誤控制器中,您可以實現所需的任何奇特邏輯,並始終呈現視圖(您可能希望在render調用中添加:status => 404 )。 請求的控制器中可以使用請求的URL作為params[:url]

有一種丑陋的方式:

render :file => "#{RAILS_ROOT}/public/404.html", :layout => false, :status => 404

也許有人可以找到更好的解決方案。

暫無
暫無

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

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