仕様
投稿にお金がかかるサイトを作成してます。
・普通のユーザーはpaypalAPIを通して投稿する
・定額プランを契約しているユーザーはpaypalを挟まず普通に投稿できる
という仕様です。
viewをuser.planの真偽に応じて条件分岐させてフォームを作っています。
<% if user.plan.exists? %> <%= f.button 'イベント作成' %> <% else %> <div class="paypal_modal_trigger">イベント作成</div> <% end %>
class="paypal_modal_trigger" のボタンを押すとpaypalの決済ボタンが現れる仕様です。
問題点
プラン未契約の場合でもデベロッパーツールを使ってサブミットボタンを偽造できてしまい、そのままpost#createコントローラーを叩けてしまうことが判明しました。
なのでプラン未契約の場合はsubmitボタンからの投稿を拒否できるようにしたいのですがどのような実装をするのがよいのか検討もつきません。。。
丸投げで申し訳ないですがある程度調べたのに何も解決策が見出せずに質問させていただきます。
よろしくお願いします!
補足です
Paypalの仕様上post#createは使わなければいけません