2016-01-07 2 views
0

У меня есть следующий в моих маршрутах:Rails перенаправляет отформатированный PARAMS в URL

match '/car-rentals(/:address)' => 'search#search', via: :get 

Я могу посетить:

LOCALHOST: 3000/автомобиль-прокат/Монреальского

Показывает все доступные автомобили Монреаль.

Когда я вхожу: localhost:3000/car-rentals/Montreal Quebec

Мой URL становится localhost:3000/car-rentals/Montreal%20quebec

Я хотел бы, чтобы это было: localhost:3000/car-rentals/montreal-quebec

Я попытался с помощью to_param в моей модели.

class Search < ActiveRecord::Base 
    def to_param 
    "#{address.parameterize}" 
    end 
end 

Любые другие способы достижения этого?

Также стоит упомянуть. Когда я вставлю binding.pry в to_param и перезагрузите страницу, это не остановит процесс, поэтому не добирается.

def to_param 
    binding.pry # on page load, not getting here 
    "#{address.parameterize}" 
    end 

Заранее благодарен!

+0

К сожалению, я не подцепить на нем. Почему не работает 'to_param' и' parameterize'? – Alexander

+0

Извините, я не добираюсь до 'to_param', я обновил вопрос – neo

+0

Перезапустили ли вы свой сервер Rails после переопределения метода' to_param'? Я чувствую, что способ «to_param» настройки URL-адреса должен работать. – Alexander

ответ

1

Есть несколько драгоценных камней, которые генерируют слизни для дружественных URL-адресов для SEO.

В прошлом я использовал https://github.com/norman/friendly_id, и он отлично работал. Он также имеет очень полезную документацию.

Существует также следующее: https://github.com/Sutto/slugged

+0

да, я знаю, я хотел бы написать это сам – neo

Смежные вопросы