2013-05-14 4 views
0

Я пытаюсь создать маршруты в моем приложении rails. Приложение имеет жанр фильма и жанра столбцов. Я хочу сделать такие маршруты:/movies-genre-horror и показать все фильмы с жанровым ужасом. Действительно ли это возможно? Если да, может кто подскажет, как это сделать? Было бы неплохо, если бы это было учебное пособие. Я сделал так:/movies/genre/horror, и он работает. Я использую gem friendly_id и использую slug, чтобы изменить жанр, который не подходит для URL.Ruby on Rails генерирует маршрутизацию

+0

вы можете создать резервный маршрут, где вы заглянете внутрь контроллера, если вы получите несколько совпадений в своей базе данных. Но почему изменение поведения по умолчанию? Я думаю, что это выглядит красиво '/ movies/genre/horror' – 23tux

+0

Вы бы хотели разработать? как создать резервные маршруты? спасибо – ishwr

ответ

0

Добавить маршрут по умолчанию к вашему routes.rb. В самом конце вобще

match ":default" => "foo#default" 

И внутри foo_controller.rb

def default 
    # here are your params 
    parts = params[:default].split("-") 
    controller = parts[0] 
    action = parts[1] 
    genre = parts[2] 
    records = Movie.where(genre: genre) 
    if records.count > 0 
    # redirect to your controller aciton 
    else 
    raise ActionController::RoutingError.new('Not Found') 
    end 
end 

Это не проверял, но я думаю, вы должны получить точку.