Создание SEO-дружественных URL в Rails 3 - PullRequest
5 голосов
/ 14 февраля 2011

У меня в настоящее время есть URL-адреса, которые выглядят так:

things?category_id=6&country_id=17

, и я хотел бы иметь URL-адреса, которые выглядят так:

/printer_cartridges/united_kingdom

Есть ли способ в Rails 3,без жесткого кодирования всех категорий и стран в маршрутизаторе для получения URL-адресов, как я хотел бы выше, возможно, используя find_by_name или что-то подобное?Как лучше всего подойти к этому?

Ответы [ 2 ]

4 голосов
/ 14 февраля 2011
match '/:category_slug/:country_slug', :to => 'things#index'

Затем вам нужно обновить действие, чтобы искать все, используя params [: category_slug] и params [: country_slug] вместо идентификаторов. Посмотрите на камень slugged , чтобы создать слизняков.

3 голосов
/ 14 февраля 2011

В вашей модели категории добавьте метод

def to_param
   "#{category_name.parameterize}/#{location_name.parameterize}"
end

, где category_name и location_name - это то место, где вы вводите, где хранятся имена.

...