LoginSignup
29
29

More than 5 years have passed since last update.

Rails4 Deviseカスタマイズ:登録時に規約に同意を追加

Last updated at Posted at 2014-05-02

1.
DBにカラムを追加する

$ rails g migration add_rule_confirmed_to_users rule_confirmed:boolean
$ bundle exec rake db:migrate

db/migrate/20130930182035_add_rule_confirmed_to_users.rb が生成されるので、マイグレート

2.
application_controller.rbに、以下を追加する

controllers/application_controller.rb
class ApplicationController < ActionController::Base
  before_filter :configure_permitted_parameters, if: :devise_controller?

  protected
    def configure_permitted_parameters
      devise_parameter_sanitizer.for(:sign_up) << :rule_confirmed
    end
end

3.
views/devise/registrations/new.html.erbに
以下を追加する
(simple_form,bootstrap使用)

views/devise/registrations/new.html.erb
  <%= f.input :rule_confirmed, :input_html => { :class => 'input-xlarge' } %>

4.
ja.ymlに以下を追加
(ロケールが日本語の場合)

config/locales/ja.yml
ja:
  activerecord:
    attributes:
      user:
        rule_confirmed: "利用規約に同意"

5.
モデルのuser.rbに以下を追加

models/user.rb
  validate :rule_confirmed_valid?

private
  def rule_confirmed_valid?
    errors.add(:rule_confirmed, 'して頂かない場合は、登録できません。') unless rule_confirmed == true
  end
29
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
29