2011-05-31 67 views
1

我目前正在嘗試使用類別/項目模式來模擬Rails中的文件夾/文件行爲。所以,我有這樣的路線:Rails應用程序中的尾隨斜槓行爲

match '/:category/' => 'category#list_articles' 
match '/:category/:article.:format' => 'article#show' 

基本上,申請網址是:

http://www.example.com/category/ 
http://www.example.com/category/article.html 

一切正常。問題在於它工作得很好。像http://www.example.com/category這樣的網址(沒有結尾的斜線)也提供文章列表。它是否存在一種阻止404或更好的方式來重定向到帶有斜線的類別?

使用Rails 3,nginx,ruby 1.9.2。謝謝!

+0

給予好評使用「斜線」標籤。 – Yule 2011-05-31 11:33:58

回答

2

我不知道有沒有東西在軌即會爲你,但這應該做到:

class TrailingSlashes                          
    def initialize(app) 
    @app = app 
    end 

    def call(env) 
    if match = env['REQUEST_PATH'].match(/(.*)\/$/) 
     response = Rack::Response.new 
     response.redirect(match[1]) 
     response 
    else 
     @app.call(env) 
    end 
    end 
end