Ruby on Rails開発のインターン (Day 5)
こんにちは、皆さん!
勤務開始時は少し眠い感じ。ちゃんと起きてられるといいが...
- トピック:
- 疑問:
- 問題:
- 学習した内容:
- reCAPTCHAの実行
- 今後やりたいこと:
- reCAPTCHAを自分のプロジェクトにも追加する
- reCAPTCHAのチュートリアル動画を作る
- リソース:
reCAPTCHAとは?
これはグーグルが提供しているAPIであり、登録して必要なキーさえ手に入れたら、自分自身のアプリケーションで使うことができます!
登録はこちら→reCAPTCHA: Easy on Humans, Hard on Bots
RailsでreCAPTCHAを実行する
いつも通り、最初の作業はgemを
Gemfile
に追加
gem 'recaptcha', require: 'recaptcha/rails'
そしたら、reCAPTCHAのサイトキーとシークレットキーを保存するためにconfig/initializers/recaptcha.rb
を作成し、次の内容を中に入れる
Recaptcha.configure do |config| config.site_key = Rails.application.secrets.recaptcha_site_key config.secret_key = Rails.application.secrets.recaptcha_secret_key end
2つのキーを環境変数として設定するのを忘れずに!!
環境変数の設定の仕方については→ Ruby on Rails環境変数の設定 - Programming_Shopの日記
下記の内容をreCAPTCHAを使いたいところに入れましょう
<%= recaptcha_tags %>
そしたら、create
関数に下記のコードを入れて、ユーザーがreCAPTCHAの質問に正解できたか確認します (Userを作るためのフォームがある前提で)
verify_recaptcha(model: @user)
ユーザーが正解できたのなら、true、間違えたのなら、falseを返してきます
ということで、下記のようによく利用されます
def create @user = User.new(user_params) if !verify_recaptcha(model: @user) || !@user.save render "new" end end
このコードですと、ユーザーがreCAPTCHA間違えた場合とフォームを確実に埋めることができなかった時の両方の場合ともフォームに戻ってくれます。
まとめ
いづれにいろ、今日はバグを一つ直し、reCAPTCHAを実行することもできたのですごいいい感じ!!
明日どんな新しいことに出会えるか楽しみです☺
ご精読ありがとうございました。では、また次回まで✌