[Rails5] twitter 인증을 도입하면 이메일을 사용한 등록을 할 수 없게 된 건

표제대로, 할 수 있었던 signup을 할 수 없게 되었다.

email






email은 이미 존재하고 있다.
로그를 보면 Unpermitted parameter: email이 있다.
DB를 봐도 emai 데이터는 들어 있지 않다. twiiter 인증의 분은, email 데이터가 들어가 있다.
스트롱 파라미터에 email을 넣지 않아도 좋다고 생각하지만

application_controller.rb
class ApplicationController < ActionController::Base
  # CSRFへのセキュリティ対策
  protect_from_forgery with: :exception
  before_action :configure_permitted_parameters, if: :devise_controller?

  # 省略

  protected
    #
    #パラメーターname,emailを渡せるようにする
    #
    def configure_permitted_parameters
      devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :email])
      devise_parameter_sanitizer.permit(:account_update, keys: [:name, :email])
      devise_parameter_sanitizer.permit(:sign_in, keys: [:name, :email])
    end 

end

와 email를 추가하는 것으로 해결.

uid



twitter등록이 아니라 보통의 등록이기 때문에 uid데이터는 필요없는데, 이 uid는 벌써 존재하고 있다.

models/user.rb
#validates :uid, uniqueness: true

그리고 밸리데이션을 코멘트 아웃으로 제외하면 에러는 잡혔다.

좋은 웹페이지 즐겨찾기