? в route.rb с map.with_options ruby - PullRequest
       11

? в route.rb с map.with_options ruby

2 голосов
/ 21 января 2010

Я использую именованные маршруты в своем коде ruby. Я пришел из phpworld, где вы будете передавать информацию, используя $_GET и $_POST. Мне было интересно, если есть способ поместить это в route.rb, как это:

map.with_options :controller => 'test' do |m|
  m.someurl 'someurl?search=someterm', :action => 'index'
end

В настоящее время возвращается can't convert Hash into String. Спасибо!

Justin

1 Ответ

3 голосов
/ 21 января 2010

Если вы хотите просто использовать строку запроса, вам вообще не нужно указывать свой маршрут. Объект params будет содержать любые переданные параметры.

map.with_options :controller => 'test' do |m|
  m.some_url 'someurl', :action => 'index'
end

Тогда, когда вы используете вспомогательный метод:

some_url_path (: search => "someterm")

Создаст для вас значение строки запроса.

Однако, если вы хотите передать параметр контроллеру, вы можете связать его с вашим маршрутом:

map.connect ':controller/:action/:id/:search' 

В вашем контроллере вы можете получить доступ:

params[:search]

В вашем случае это будет что-то вроде:

map.with_options :controller => 'test' do |m|
  m.some_url 'someurl' :action => 'index'
end

Руководство по маршрутизации рельсов предоставляет превосходный обзор по теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...