rails5でvirtusとrecaptchaを一緒に使う

Googleのrecaptchaを使うために

ambethia/recaptcha

を導入した。

しかし、form objectとしてvirtusを使っており、recaptchaのドキュメント通りだと実装出来ない。
そこで、試行錯誤した結果、こうなった。

form objectクラスを変更

include Recaptcha::Verify

attr_accessor :params
attr_accessor :request

をform objectのクラスに追加。

そしてvalidateしている部分を

if valid? && verify_recaptcha(model: self)

という形に変更。

controller側を変更

@form_object.params = params
@form_object.request = request

form objectに追加したattributeへ値をセットする。

これで上手く動いたが、これで良いのかは不明。

コメント

タイトルとURLをコピーしました