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

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

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

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

Ruby on Rails

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Q&A

解決済

1回答

2714閲覧

Deviseでログインできない問題に関して

nao0725

総合スコア5

Devise

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

Ruby on Rails

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

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

0グッド

0クリップ

投稿2021/08/06 07:42

編集2021/08/06 23:41

前提・実現したいこと

ログインして、homeに遷移させたい

発生している問題・エラーメッセージ

deviseを実装し、ログインしたいと思ったらhomeに遷移されず、ログインページにリダイレクトされてしまいます。

下記はTerminal上のエラーです。
下記が原因ではないかと考えています。

Started POST "/users/sign_in" for 221.189.157.2 at 2021-08-06 07:05:01 +0000 Cannot render console from 221.189.157.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC ↳ /home/ec2-user/.rvm/gems/ruby-2.6.3/gems/activerecord-5.2.6/lib/active_record/log_subscriber.rb:98 Processing by Users::SessionsController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"zoIuNn+ggYBvgvUEriXEqFtUrVUDjvYigxdXCTmsLgDRTYEwWkTd7tA6vydLrXtF1v/id6lDpS0isD2AKqrKTg==", "user"=>{"name"=>"test2", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Log in"} Completed 401 Unauthorized in 8ms (ActiveRecord: 0.0ms)

該当のソースコード

ApplicationController

1class ApplicationController < ActionController::Base 2 before_action :configure_permitted_parameters, if: :devise_controller? 3 4 5 def after_sign_in_path_for(resource) 6 public_home_path(resource) 7 end 8 9 protected 10 11 def configure_permitted_parameters 12 devise_parameter_sanitizer.permit(:sign_up, keys: [:name]) 13 end 14end 15

route

1Rails.application.routes.draw do 2 3 4 root to: "public/homes#top" 5 get 'public/help' => 'public/homes#help' 6 get 'public/home' => 'public/homes#home' 7 8 devise_for :users, controllers: { 9 sessions: 'users/sessions', 10 passwords: 'users/passwords', 11 registrations: 'users/registrations' 12} 13 14 devise_for :admins, controllers: { 15 sessions: 'admins/sessions', 16 passwords: 'admins/passwords', 17 registrations: 'admins/registrations' 18} 19 20 resources :articles 21 22 23end 24

new

1<div class = "container"> 2 3 <h2>Log in</h2> 4 5 <%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %> 6 7 <div class="field"> 8 <%= f.label :name %><br /> 9 <%= f.text_field :name, autofocus: true, autocomplete: "name" %> 10 </div> 11 12 13 <div class="field"> 14 <%= f.label :password %><br /> 15 <%= f.password_field :password, autocomplete: "current-password" %> 16 </div> 17 18 <% if devise_mapping.rememberable? %> 19 <div class="field"> 20 <%= f.check_box :remember_me %> 21 <%= f.label :remember_me %> 22 </div> 23 <% end %> 24 25 <div class="actions"> 26 <%= f.submit "Log in" %> 27 </div> 28 <% end %> 29 30 <%= render "devise/shared/links" %> 31 32</div>

SessionController

1# frozen_string_literal: true 2 3class Users::SessionsController < Devise::SessionsController 4 # before_action :configure_sign_in_params, only: [:create] 5 6 # GET /resource/sign_in 7 # def new 8 # super 9 # end 10 11 # POST /resource/sign_in 12 # def create 13 # super 14 # end 15 16 # DELETE /resource/sign_out 17 # def destroy 18 # super 19 # end 20 21 # protected 22 23 # If you have extra params to permit, append them to the sanitizer. 24 # def configure_sign_in_params 25 # devise_parameter_sanitizer.permit(:sign_in, keys: [:attribute]) 26 # end 27end 28

試したこと

テラテイルの過去記事等、ネットの情報を頼りに、いろいろ試してみましたが、ログインだけができませんでした。

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

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

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

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

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

winterboum

2021/08/06 07:53

Users::SessionsController のcodeを載せてください
nao0725

2021/08/06 08:42

修正しました。 ご確認をよろしくお願い致します。
winterboum

2021/08/06 20:26

``` でくくるの失敗しているみたい オリジナルのままですね。 気になるのは email でなく name になっていること。「emailではなくnameで認証する」という宣言をしてありますか
nao0725

2021/08/06 23:42

失礼しました!修正しました。 nameでログインする設定見逃していました。確認します!
guest

回答1

0

自己解決

そもそも新規会員登録に問題があり、新規会員登録なのにsessionコントローラ呼びだしてました

投稿2021/08/08 08:30

nao0725

総合スコア5

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問