신규 사용자 등록 양식의 동의 확인란(밸리데이션) 구현
웹 서비스의 신규 유저 등록 폼에서 볼 수 있는, 「동의 체크 박스」를 구현합니다.
데이터베이스에 열을 추가하지 않고
validates_acceptance_of
라는 유효성 검사를 사용합니다.1.View
new.html.erb
<h1>新規ユーザ登録フォーム</h1>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= form_for(@user) do |f| %>
...省略...
<%= f.check_box :agreement, :as => :boolean, checked:false %>
利用規約とプライバシーポリシーに同意する
<%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
<% end %>
</div>
</div>
우선, 체크 박스를
<%= f.check_box :agreement, :as => :boolean, checked:false %>
라는 바람에 추가. 이번은 동의이므로, :agreement
로 했습니다.2. Model
user.rb
class User < ActiveRecord::Base
validates_acceptance_of :agreement, allow_nil: false, on: :create
...省略...
end
밸리데이션을
validates_acceptance_of
라는 형태로 추가합니다.3. Controller
users_controller.rb
def create
@user = User.new(user_params)
if @user.save
flash[:success] = "登録が完了しました!"
redirect_to @user
else
render 'new'
end
end
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation, :agreement)
end
end
검색할 매개 변수에
:agreement
를 추가합니다.구현 완료!
위 코드를 통해 동의했는지 여부를 확인란의 유효성 검사를 통해 확인할 수 있습니다.
참고
Devise 및 simple_form으로 회원 가입 시 이용 약관에 동의 확인 - 아이디어 요약 노트
Reference
이 문제에 관하여(신규 사용자 등록 양식의 동의 확인란(밸리데이션) 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rkonno/items/b6c77a2e994c6e0e86df텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)