Получить SEO-дружественные URL с помощью Rails без method_missing? - PullRequest
0 голосов
/ 15 июня 2010

В настоящее время мы используем method_missing, чтобы отлавливать вызовы к SEO-дружественным действиям в наших контроллерах, а не создавать действия для каждого мыслимого значения переменной. Мы хотим, чтобы URL были такими:

/ студенты / BobSmith

и НЕ / студенты / шоу / 342

Есть ли более чистое решение, чем method_missing?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 июня 2010

Вы можете довольно легко определить маршрут для этого конкретного формата.

map.connect "/students/:name", :controller => :students, :action => :show, :requirements => {:name => /[A-Z][A-Z]+/}

Тогда в вашем шоу-действии вы можете найти по имени, используя params [: name].

0 голосов
/ 15 июня 2010

Вы можете создать универсальный маршрут.Поместите это в конец config / rout.rb с любым контроллером и действием, которое вы хотите:

map.connect '*path', :controller => '...', :action => '...'

Сегменты маршрута будут доступны вашему контроллеру в params[:path]массив.

...