Codificar JSON em href usando encodeURI, análise Rails

Esta é uma situação muito simples, mas confusa, eu procurei por um tempo mas não encontrei uma resposta certa sobre Rails.

Usando Jquery podemos adicionar parâmetros a uma url para enviar ao servidor ao clicar, esta pode ser uma solução fácil para casos NÃO FORMULÁRIOS quando você tem que enviar ids dinamicamente, dados, etc. para o servidor.

Em primeiro lugar, vamos imaginar que temos um JSON:

json_data = {"1": "data1", "2": "data2"}

Isso é fácil de enviar usando ajax

$.ajax
format
: "json"
url
: "some/url"
data
: {"mydata": JSON.stringify(json_data)}

Lá em cima que irá enviar uma solicitação ao servidor com os dados analisados ​​para manipulação, mas e se quisermos enviar por meio de um clique para redirecionar a página usando uma solicitação de atualização e não um ajax normal?
teremos que usar uma das muitas soluções como usar formulários e envios, realocar a página, etc.

Para este caso usaremos uma solução onde enviaremos o json analisado para os links href para enviar para o servidor clicando

Para fazer isso, vamos imaginar que temos um link:

<a href="some/address" >mylink</a>

Então usamos este coffeescript:

$("a").attr "href", $("a").attr("href").split("?")[0] + "?" + JSON.stringify(json_data)

Com isso, o json é adicionado à url, mas causará um erro de servidor de solicitação incorreta porque o json ainda não é compatível com URI. Para fazer isso, adicionamos encodeURI ou encodeURIelement dependendo do seu Unicode.

$("a").attr "href", $("a").attr("href").split("?")[0] + "?" + encodeURI(JSON.stringify(json_data))

Isso tornará os dados JSON amigáveis ​​para o servidor, mas ainda há um problema … o rails é meio mal-humorado com os valores-chave e isso será mostrado na solicitação:

{ "_method"=>"get",
"authenticity_token"=>"C0/ye7xMH2Yvkvr7gM63EGRnTi+BUbQPZ0xsoDv0P8w=",
"{"1"": data1}""=>nil