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

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

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

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

Ruby on Rails 6

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

Q&A

0回答

576閲覧

devise 新規登録できない

kimch

総合スコア8

Devise

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

Ruby on Rails 6

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

0グッド

0クリップ

投稿2021/02/18 10:51

#現在deviseを用いたログイン機能を有したアプリの開発を行っているのですが新規登録ができずに困っています。
思いつく限りのことを確認したのですが、どうしても解決できず時間を費やしているので、どなたかご教授下さると助かります。
よろしくお願い致します。
#バージョン情報
rails 6.0.3.5
ruby 2.6.5
#エラー画面
form_withで作成したフォームの中に記述した情報が、全てエラーになっって帰ってきます。
11 errors prohibited this student from being saved:
とエラーメッセージが帰ってきます。

#マイグレーションファイル

class DeviseCreateStudents < ActiveRecord::Migration[6.0] def change create_table :students do |t| Database authenticatable t.string :email , null: false, default: "" t.string :encrypted_password , null: false, default: "" t.string :university , null: false t.string :first_name , null: false t.string :last_name , null: false t.text :student_introduction , null: false t.string :skill , null: false t.string :age , null: false t.string :year , null: false

#student.rb(モデルファイル)

class Student < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable with_options presence: true do validates :email validates :password validates :university validates :first_name validates :last_name validates :student_introduction validates :skill validates :age validates :year end end

#application.rb

class ApplicationController < ActionController::Base before_action :configure_permitted_parameters, if: :devise_controller? private def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:company_name, :company_introduction, :university, :first_name, :last_name, :student_introduction, :skill, :age, :year]) devise_parameter_sanitizer.permit(:account_update) end end

#routes.rb

Rails.application.routes.draw do get 'companies/show' devise_for :students, controllers: { sessions:'students/sessions', passwords:'students/passwords', registrations:'students/registrations', } devise_for :companies,controllers: { sessions:'companies/sessions', passwords:'companies/passwords', registrations:'companies/registrations', } # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html root to: "businesses#index" resources :companies, only: [:index, :show] do resources :businesses, only: [:index, :new, :create] end end

new.html.erb

<h2>学生様 新規登録</h2> <%= form_with model: @stundet, url: student_registration_path, class: 'registration-main', local: true do |f| %> <%= render "devise/shared/error_messages", resource: resource %> <div class='form-wrap'> <div class='form-header'> <h1 class='form-header-text'> 会員情報入力 </h1> </div> <div class="form-group"> <div class='form-text-wrap'> <label class="form-text">メールアドレス</label> <span class="indispensable">必須</span> </div> <%= f.email_field :email, class:"input-default", id:"email", placeholder:"PC・携帯どちらでも可", autofocus: true %> </div> <div class="form-group"> <div class='form-text-wrap'> <label class="form-text">パスワード</label> <span class="indispensable">必須</span> </div> <%= f.password_field :password, class:"input-default", id:"password", placeholder:"6文字以上の半角英数字" %> </div> <div class="form-group"> <div class='form-text-wrap'> <label class="form-text">パスワード(確認)</label> <span class="indispensable">必須</span> </div> <%= f.password_field :password_confirmation, class:"input-default", id:"password-confirmation", placeholder:"同じパスワードを入力して下さい" %> </div> <div class="form-group"> <div class='form-text-wrap'> <label class="form-text">大学名</label> </div> <%= f.text_area :university, class:"input-default", id:"nickname", placeholder:"例) furima太郎", maxlength:"40" %> </div> <div class="form-group"> <div class='form-text-wrap'> <label class="form-text">お名前(全角)</label> <span class="indispensable">必須</span> </div> <div class='input-name-wrap'> <%= f.text_area :first_name, class:"input-name", id:"first-name", placeholder:"例) 山田" %> <%= f.text_area :last_name, class:"input-name", id:"last-name", placeholder:"例) 陸太郎" %> </div> </div> <div class="form-group"> <div class='form-text-wrap'> <label class="form-text">自己紹介</label> </div> <%= f.text_area :student_introduction, class:"input-default", id:"nickname", placeholder:"例) 〇〇と申します。△△大学□□学部に所属しております。", maxlength:"40" %> </div> <div class="form-group"> <div class='form-text-wrap'> <label class="form-text">スキル</label> </div> <%= f.text_area :skill, class:"input-default", id:"nickname", placeholder:"例) Excelの基本的な動作。簿記3級所持。英検2級。", maxlength:"40" %> </div> <div class="form-group"> <div class='form-text-wrap'> <label class="form-text">年齢</label> </div> <%= f.text_area :age, class:"input-default", id:"nickname", placeholder:"例) 20", maxlength:"40" %> </div> <div class="form-group"> <div class='form-text-wrap'> <label class="form-text">年次</label> </div> <%= f.text_area :year, class:"input-default", id:"nickname", placeholder:"例) 2", maxlength:"40" %> </div> <div class='register-btn'> <%= f.submit "会員登録" ,class:"register-red-btn" %> </div> </div> <% end %>

#ターミナル

Started POST "/students" for ::1 at 2021-02-18 17:32:08 +0900 Processing by Students::RegistrationsController#create as HTML Parameters: {"authenticity_token"=>"KTX0SPg/sQCxigApVgjqEVuu0t6V2XmyEkjr9tcFAI6AcJZWNksXl/HXrQWuvrUL73moOlpLXHnflgFrPpA7Ew==", "email"=>"test@student", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "university"=>"広大", "first_name"=>"柳田", "last_name"=>"勇気", "student_introduction"=>"柳田です!", "skill"=>"元気さ!!!!", "age"=>"21", "year"=>"3", "commit"=>"会員登録"} Rendering students/registrations/new.html.erb within layouts/application Rendered /Users/takayoshikanamoto/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/devise-4.7.3/app/views/devise/shared/_error_messages.html.erb (Duration: 1.8ms | Allocations: 1522) Rendered students/registrations/new.html.erb within layouts/application (Duration: 4.2ms | Allocations: 6296) Completed 200 OK in 13ms (Views: 7.1ms | ActiveRecord: 0.0ms | Allocations: 13894)

#やったこと
・deviseを用いてcompanyとstudentの情報の登録が必要であったため、rails コマンドにてコントローラーファイルとモデル、ビューファイル、マイグレーションファイルをそれぞれ作成し、emailとパスワード以外の追加でデータベースに保存する情報にストロングパラメータを追加した。
・ターミナル上でストロングパラメータに引っかかっている様には見受けられず、実際にほぼ一緒の記述でcompanyの新規登録ができていることは確認している。

長文になってしまい大変申し訳ございません。
ここのエラーで2日ほど経ってしまっています。
申し訳ありませんが、
何卒、よろしくお願い申し上げます。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問