Вместо:
redirect_to some_params
Вы можете сделать:
redirect_to url_for(some_params)
Вы превращаете параметры в URL с помощью url_for
перед передачей его на redirect_to
, поэтомуто, что вы передаете redirect_to
, в итоге становится URL-адресом в виде строки, которую redirect_to с удовольствием перенаправляет.
Обратите внимание : Я не понимаю, почему redirect_to
отказывается использовать params.Раньше было желание использовать params.В какой-то момент кто-то добавил что-то в Rails, чтобы запретить это.Это заставляет меня подозревать, что для этого есть причины безопасности, и если так, то эти причины безопасности могут означать, что ручное выполнение redirect_to url_for(p)
также имеет последствия для безопасности.Но я еще не смог найти никакой документации, объясняющей, что здесь происходит.
обновление : я нашел предупреждение безопасности, но еще не переварил его: https://github.com/rails/rails/pull/16170