link_toをPOSTとして使う

Railsのlink_toは普通GETのリンクを生成するけど、オプションで :method => :postを指定するとPOST的な使い方ができます。

<%= link_to sanitize("<i class='icon-thumbs-up'></i>ファイト!"), likes_path(user_id: current_user, work_id: u.id), :method => :post, :remote => true %>

こんな漢字でpathのところに引数を与えてパラメータを指定出来ます。


がしかし、
実際に生成されたリンク先を新しいタブで開いてみると
http://labtime.herokuapp.com/likes?user_id=1&work_id=5
POSTを指定してもパラメータはGETと同じようにURLに負荷されてしまいます。。

これではPOSTを使う意味がない?

今回リンクでPOSTを使いたい理由としては

  1. URLパラメータを隠したい
  2. bootstrapで使うアイコンがsubmit_tag系だとうまく表示できない?(サニタイジングしてもうまくいかない ...)

まぁ機能的にはできるんだけど、見た目を良くしたいという理由です。
セキュリティ的にもよろしくないし。。。

グーグル先生に聞いてみると同じような人がいた
こちら
この方はlink_toを拡張したものを使っているらしい(コードも載せてほしい...)

まぁ自分で実装しろって話ですね。

こういう状況のときRailsエンジニアの方はどうしているんだろうか。。
みんな自前で実装しているのか。。