Маршрутизация Rails — знак равенства

#ruby-on-rails #routing

#ruby-on-rails #маршруты

Вопрос:

В моей маршрутизации rails у меня есть поиск ресурсов. И вместо /looks/:id Я хочу использовать /looks?посмотрите =:id. Но если я напишу что-то вроде этого: map.look_one ‘/ looks?look =:id’, : controller => ‘looks’, :action => ‘index’ У меня ошибка. Эта строка работает: map.look_one ‘/looks?look#:id’, :controller => ‘looks’, :action => ‘index’

Ответ №1:

На самом деле это намного проще, чем вы это делаете.

Несмотря ни на что, вы всегда можете добавить параметры к URL после ?

Просто попробуйте;

 map.look_one '/looks', :controller => 'looks', :action => 'index'
  

Это создаст путь /looks , но в равной степени вы можете ссылаться на /looks?look=12345

Последний поступит на ваш контроллер с param[:look] == '12345' .

Комментарии:

1. Спасибо, но я это знаю) Это для link_to @look.title, look_one_path(@look)

2. Что ж, rails router сделает это за вас. Все дело в путях.