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を使いたい理由としては
- URLパラメータを隠したい
- bootstrapで使うアイコンがsubmit_tag系だとうまく表示できない?(サニタイジングしてもうまくいかない ...)
まぁ機能的にはできるんだけど、見た目を良くしたいという理由です。
セキュリティ的にもよろしくないし。。。
グーグル先生に聞いてみると同じような人がいた
こちら
この方はlink_toを拡張したものを使っているらしい(コードも載せてほしい...)
まぁ自分で実装しろって話ですね。
こういう状況のときRailsエンジニアの方はどうしているんだろうか。。
みんな自前で実装しているのか。。