2013-03-01 2 views
0

Я использую «mongoid_search» для поиска на индексной странице моего приложения.Rails: Показать результаты поиска на основе url

URL-адрес, который возвращает результат выглядит примерно так: "/ профилей utf8 = ✓ & profile_search = San + Antonio% 2C + TX"

Как бы я идти о получении/местоположение/Сан-Антонио-TX вернуться те же результаты, что и поисковый URL?

В принципе, что-либо после «местоположения» должно быть преобразовано в строку запроса «profile_search».

Кроме того, возможно ли сохранить URL-адрес одинаковым? (например: «/ location'san-antonio-tx» url не будет меняться в строку запроса)

+0

Вы хотите перейти от [http://example.com/location/sanantonio-tx](http://example.com/location/sanantonio-tx) к [http://example.com/profiles?utf8 = ✓ & profile_search = Сан-Антонио +% 2C + TX] (http://example.com/profiles?utf8=✓&profile_search=San+Antonio%2C+TX)? И что вы подразумеваете под «сохранить URL-адрес один и тот же»? – adamdunson

ответ

1

Посмотрев на предоставленный вами код, кажется, что поиск выполняется в действии «индекса» «профилей», . контроллер Если это так, то вы можете создать новый маршрут:

#config/routes.rb 
match '/location/:profile_search' => 'profiles#index' 

Это будет вызывать «индекс» действие «профилей» контроллера, обеспечивая при этом всё, что после «/ местоположение /» части URL-адрес в качестве параметра с именем «profile_search»

Дополнительная информация: http://guides.rubyonrails.org/routing.html

+0

Спасибо almathie. Это то, что я искал. Мне нужно немного доработать его. Например, «/ location/san-antonio-tx» следует искать три ключевых слова (сан, antonio и tx) в «profile_search». С кодом, который вы предоставили, он ищет «san-antonio-tx» в качестве одного ключевого слова. Любые мысли о том, как я могу заставить это работать? – sevens

+0

Хорошо, похоже, я ответил на свой вопрос. Ввод «-» между словом в URL-адресе делает его работу. «san-antonio-tx» будет обрабатываться как 3 ключевых слова. Еще раз спасибо, almathie. – sevens