質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

905閲覧

【Rails5】deviseでアカウント作成時、確認画面を表示したい

nna1016

総合スコア5

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/11/19 18:12

編集2021/11/20 06:18

解決したいこと

Deviseでアカウントを作成する際に、確認画面をはさみたい

発生している問題・エラー

イメージ説明

該当するソースコード

new.html.erb

1<h2>Sign up</h2> 2<%= form_with model: @user, url: users_sign_up_confirm_path(@user), local: true do |f| %> 3 4 <div class="field"> 5 <%= f.label :"氏名" %><br /> 6 <%= f.text_field :username, autofocus: true, autocomplete: "username" %> 7 </div> 8 9 ・・・ 10 11 <div class="field"> 12 <%= f.label :password %> 13 <% if @minimum_password_length %> 14 (<%= @minimum_password_length %>文字以上) 15 <% end %> 16 </div> 17 18 <div class="field"> 19 <%= f.password_field :password %> 20 <%= f.password_field :password_confirmation %> 21 </div> 22 23 <div class="field"> 24 <%= f.label :"個人写真" %><br/> 25 <%= f.file_field :userpic %> 26 </div> 27 28 <%= render "devise/shared/links" %> 29 30 <div class="actions"> 31 <%= f.submit "確認" %> 32 </div> 33<% end %>

confirm.html.erb

1<div> 2 3 <h2>入力情報の確認</h2> 4 5 <%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 6 7 <div class="field"> 8 <%= f.label :"氏名" %><br /> 9 <%= f.text_field :username, value: @user.username, readonly: true %> 10 </div> 11 12 <div class="field"> 13 <%= f.label :"フリガナ" %><br /> 14 <%= f.text_field :ruby, value: @user.ruby, readonly: true %> 15 </div> 16 17 ・・・ 18 19 <div class="field"> 20 <%= f.label :"入学年" %><br /> 21 <%= f.text_field :entry_year, value: @user.entry_year, readonly: true %> 22 </div> 23 24 <div class="field"> 25 <%= f.label :"個人写真" %><br/> 26 <img src=<%= @user.userpic %> class = "icon_image"> 27 </div> 28 29 <%= f.submit "修正する", name: :back %> 30 <%= f.submit "登録する" %> 31 32 <% end %> 33</div>

registrations_controller.rb

1# frozen_string_literal: true 2 3class Users::RegistrationsController < Devise::RegistrationsController 4 # before_action :configure_sign_up_params, only: [:create] 5 # before_action :configure_account_update_params, only: [:update] 6 7 # GET /resource/sign_up 8 # def new 9 # super 10 # end 11 12 #POST /resource 13 def create 14 @user = User.new(sign_up_params) 15 render :new and return if params[:back] 16 super 17 end 18 19 ・・・ 20 21 def update 22 @user = User.find(params[:id]) 23 if @user.valid? 24 @user.update(update_params) 25 redirect_to user_path(@user.id) 26 else 27 render :edit 28 end 29 end 30 31 # 新規追加 32 def confirm 33 end 34 35 # 新規追加 36 def complete 37 end 38 39 # アカウント登録後 40 def after_sign_up_path_for(resource) 41 users_sign_up_complete_path(resource) 42 end 43 44 private 45 def update_params 46 params.require(:user).permit(:username) 47 end 48 49end

routes.rb

1Rails.application.routes.draw do 2 3 root 'home#top' 4 get '/' => 'home#top' 5 6 devise_for :users, controllers: { 7 registrations: 'users/registrations' 8 } 9 10 # views/users/registrations内に作成したconfirm.html.erbとcomplete.html.erbもルーティングに追加します。 11 devise_scope :user do 12 post 'users/sign_up/confirm', to: 'users/registrations#confirm' 13 get 'users/sign_up/complete', to: 'users/registrations#complete' 14 end 15 16 ・・・ 17 18end

参考にした記事

リンク内容

私自身、Rails初学者であり、deviseの仕組みを深く理解しているわけではないため、今回のようなdeviseを用いた確認画面を作成する場合、どうして良いのか行き詰まっている状況です。
どなたか、ご教授いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasaSakano

2021/11/25 00:26

情報が不足しています。まず、何をした時にエラーが出ているのかが記述されていません。 コードがありますが、それぞれ何のコードかがわかりません。 質問は、端的には、読んだ人が(その気になれば)再現できるような形で提示することが望ましいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問