В Rails легко сделать ссылку, сделав запрос POST. Что-то вроде link_to 'Click me', some_path, :method => :post
. Это прекрасно работает ... если только вам не нужно передавать дополнительные параметры. Поскольку нет способа сделать реальный запрос POST по ссылке, Rails подделывает его с помощью запроса GET, что означает, что если вы попытаетесь передать дополнительные параметры в some_path
он встраивает его в строку запроса. Поэтому, когда вы наводите курсор мыши, вы получаете ссылку, которая выглядит следующим образом:
/some_path?foo=var&foo=bar[foo][bar]
Обычно это не так уж и плохо, за исключением того, что это становится очень уродливо, если у вас есть контроллер, который ожидает несколько вложенных параметров.
Так что мой вопрос, это кого-то беспокоит, или это только у меня?
Единственный обходной путь, о котором я могу подумать, - это изменить href на #
, добавить скрытую форму поблизости и добавить обработчик кликов к ссылке, которая сериализует форму и отправляет ее при щелчке по ссылке. Это делает ссылку неприемлемой, и это огромная работа, которая в основном сводится к эстетическому захвату. Но я довольно одержим своими URL. Есть ли более простой способ? Или я просто схожу с ума и должен просто разобраться с параметрами в строке запроса?