% - это специальный символ в URL-адресах, не так ли? Вам понадобится ваш метод поиска, чтобы очистить запрос, прежде чем он будет передан URL-адресу.
Я считаю, что вы можете использовать методы класса String, предоставленные в gem Stringex, для очистки поискового запроса.
https://github.com/rsl/stringex
Оттуда страница github.
"10% off if you act now".to_url => "10-percent-off-if-you-act-now"
Редактировать:
Вам нужно будет что-то вроде этого (это не очень чисто, но дает вам представление)
class SearchesController < ApplicationController
def new
#Form in its view that goes to create via json
end
def create
query = params[:query].to_url
redirect_to "/search/#{query}"
end
def show
#search paged on params[:query]
end
end
маршруты
resources :searches, :only => [:new, :create, :show], :new => ""
get "/search" => "searches#new", :via => :get
Вы бы вели себя так, будто относитесь к нему как к обычному объекту, но на самом деле никогда его не сохраняете. Вы даже можете изменить имя метода :create для разбора, если хотите, но таким образом встроенные помощники и логика rails будут работать.
person
rovermicrover
schedule
21.12.2012