railsで利用規約同意を実装

目次

マーケター、エンジニアを月1時間からジョインできるプラットフォーム

airteamは月1時間からマーケターやエンジニアに相談できるプラットフォーム。 雇うのはハードル高いけどプロをチームに入れたい。そんな経営者のためのサービスです。 相談にのる方も募集しています。

タスクなしだから月一時間からジョイン可能

作業はなくオンライン相談メイン。 月1時間からさっと経験者に継続的に相談できます。

多様な経験者を雇用するより何倍も早くチームに

あらゆるジャンルの経験者がいるので あなたのチームのノウハウの選択肢が広がります。

NDAはすでに締結済み、契約もスムーズ

契約の煩雑なやりとりはなく、NDAはすでに締結済み、書面のやりとりはありません。

webサービスを登録する際に利用規約同意したかどうかにチェックを入れて登録するフォームをよく見かけると思います。railsのdeviseでユーザー登録を実装している際の実装手順をまとめました。

やりたいこと

  • rails
  • deviseでユーザー登録
  • ユーザー登録時に利用規約の同意にチェックマーク
  • チェックが入っていないと弾く
  • dbには保存しない

環境

ruby 3.2.2

rails 7.0.8

model

validates_acceptance_of :agreement_terms, allow_nil: false, on: :create

user modelに上記を追記。validates_acceptance_ofメソッドは、指定された属性が特定の条件を満たしているかどうかを検証するために使用されます。この場合、:agreement_terms属性がnilでないこと、および:createアクションでのみ検証が行われることが指定されています。

form


            <%= f.check_box :agreement_terms, :as => :boolean, checked:false, class: "checkbox_check" %>
            <a href="/kiyaku" class="link_color">利用規約</a>と<a href="/privacy" class="link_color">プライバシーポリシー</a>に同意します。

checkboxを実装

パラメーターを渡せるように

  before_action :configure_permitted_parameters, if: :devise_controller?

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:agreement_terms])
  end

deviseで実装している場合、新しいパラメーターをuser作成時に渡したい場合は上記のdevise_parameter_sanitizer.permitで設定しないといけない。