前提・実現したいこと
Rails初心者です。
Rails6で、新規登録を行う際に、以下のエラーが出て困っております。
どのようにすれば、エラーを解消できるでしょうか?
発生している問題・エラーメッセージ
ActionController::UnknownFormat in Devise::RegistrationsController#create ActionController::UnknownFormat
applicationContoller
1class ApplicationController < ActionController::Base 2 before_action :basic_auth 3 before_action :configure_permitted_parameters, if: :devise_controller? 4 private 5 6 def basic_auth 7 authenticate_or_request_with_http_basic do |username, password| 8 username == 'admin' && password == '2222' 9 end 10 end 11 def configure_permitted_parameters 12 devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname,:name,:height,:sex_id,:age]) 13 end 14end 15
userModel
1class User < ApplicationRecord 2 # Include default devise modules. Others available are: 3 # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable 4 extend ActiveHash::Associations::ActiveRecordExtensions 5 devise :database_authenticatable, :registerable, 6 :recoverable, :rememberable, :validatable 7 has_many :Posts 8 belongs_to :sex 9 with_options presence: true do 10 validates :nickname 11 validates :name 12 validates :height 13 validates :age 14 validates :sex_id 15 16 validates :name, 17 format: {with:/\A[ぁ-んァ-ン一-龥]+\z/} 18 validates :height, 19 format: {with:/\A[0-9]+\z/} 20 validates :age, 21 format: {with:/\A[0-9]+\z/} 22 validates :password, 23 format:{with:/\A(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[\d])\w{6,12}\z/} 24 validates :sex_id, numericality: { other_than: 1 } 25 end 26end 27
sexrb
1class Sex < ActiveHash::Base 2 self.data = [ 3 { id: 1, name: '--' }, 4 { id: 2, name: '男性' }, 5 { id: 3, name: '女性' }, 6 { id: 4, name: 'その他' }, 7 8 ] 9 include ActiveHash::Associations 10 has_many :users 11 end
deviseuser
1class DeviseCreateUsers < ActiveRecord::Migration[6.0] 2 def change 3 create_table :users do |t| 4 ## Database authenticatable 5 t.string :email, null: false, default: "" 6 t.string :encrypted_password, null: false, default: "" 7 t.string :nickname, null: false 8 t.string :name, null: false 9 t.integer :height, null: false 10 t.string :sex_id, null: false 11 t.integer :age, null: false 12 ## Recoverable 13 t.string :reset_password_token 14 t.datetime :reset_password_sent_at 15 16 ## Rememberable 17 t.datetime :remember_created_at 18 19 ## Trackable 20 # t.integer :sign_in_count, default: 0, null: false 21 # t.datetime :current_sign_in_at 22 # t.datetime :last_sign_in_at 23 # t.string :current_sign_in_ip 24 # t.string :last_sign_in_ip 25 26 ## Confirmable 27 # t.string :confirmation_token 28 # t.datetime :confirmed_at 29 # t.datetime :confirmation_sent_at 30 # t.string :unconfirmed_email # Only if using reconfirmable 31 32 ## Lockable 33 # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts 34 # t.string :unlock_token # Only if unlock strategy is :email or :both 35 # t.datetime :locked_at 36 37 38 t.timestamps null: false 39 end 40 41 add_index :users, :email, unique: true 42 add_index :users, :reset_password_token, unique: true 43 # add_index :users, :confirmation_token, unique: true 44 # add_index :users, :unlock_token, unique: true 45 end 46end
試したこと
as: resource_nameを削除しましたがダメでした
devise_parameter_sanitizer.permit(:sign_up,keys: [:nickname,:name,:height,:sex_id,:age])
の後にredirect_toを記述してみたが
ログイン状態にならずにリダイレクトされただけでした。
補足情報(FW/ツールのバージョンなど)
データベースには保存はできています。
ですが画面はエラー画面になりindexのビューに戻りません。
ご教授お願いいたします!
回答1件
あなたの回答
tips
プレビュー