0

認証にdeviseを使用しています。電子メールが既に存在する場合は、ユーザーをログインさせます。電子メールが存在しない場合は、それらの資格情報を使用して新しいユーザーを作成します。送信ボタンは 1 つだけで、電子メールとパスワードのフィールドは 1 つだけにする必要があります。

4

2 に答える 2

1

それはあなたのコントローラーでその条件を書く必要があるために可能です

例えば

def create
 @user = @user.find_or_create_by(params[:user])
 ....
 ....
end

また

def create
  @user = User.find(params[:user])
  unless @user.present?
    @user = User.new(params[:user])
    if @user.valid?
      ...
    else 
      ...
   end
 end
end

または # デバイスの場合 - 登録コントローラー内

def create
  @user = User.find_by_email(params[:user][:email])
  if @user.present? 
    sign_in(resource_name, resource)
  else
    if resource.save
      if resource.active_for_authentication?
       ...
       ...
      else
       ...
       ...
      end
    else
      ...
      ...
    end
  end
end
于 2012-10-12T08:20:38.073 に答える