👋

RailsでiPhoneだけinputのsubmitがダウンロードリンクになる

2021/08/04に公開

Railsで以下のようなコードを書いていました。クリックするとモデル@Siteがcreateされるものです。

<%= form_tag("/sites/create", method: "post") do %>
	<input type="hidden" name="domain" value="<%= result['domain'] %>">
	<input type="submit" value="Do Something" onClick="toggleDisplay('<%= result['id'] %>')">
<% end %>    

普通はlink_toで書いたりすると思うのですが、paramsを渡したかったり(これは後から調べたらlink_toでもpath引数にparamsを渡せばできる)、何よりonclickを使いたかったので、無理やりformで作りました。

しかしこれで実装するとiPhoneで実行時に「'create'をダウンロードしますか?」というポップアップがでる。これはiPhone版Chromeでも出る。

結論、form_withを使ったら出なくなった。。理由は調べたけどなかなか同症状の人がおらず。そもそもProgateで言うLikeすると同じ仕様なので、onClickの所を上手くやればもっと綺麗でブラックボックスでないコードがかけるはずなのだが。。

Discussion