Поведение косой черты в приложении Rails - PullRequest
1 голос
/ 31 мая 2011

В настоящее время я пытаюсь имитировать поведение папок / файлов в рельсах со схемой категории / статей.Итак, у меня это в маршрутах:

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

В основном, URL-адреса запроса:

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

Все работает.Проблема в том, что он работает хорошо.URL, такой как http://www.example.com/category (без косой черты), также служит списком статей.Существует ли способ заблокировать это с помощью 404 или лучше для перенаправления в категорию с косой чертой?

Использование Rails 3, nginx, ruby ​​1.9.2.Спасибо!

1 Ответ

2 голосов
/ 31 мая 2011

Я не уверен, что в рельсах нет чего-то, что могло бы сделать это для вас, но это должно сделать:

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
...