🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Q&A

解決済

1回答

1396閲覧

http://localhost:3000/users/sign_in でトップ画面が表示されてしまう

Pro01x19

総合スコア17

Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

0グッド

0クリップ

投稿2020/12/05 16:16

編集2020/12/05 16:29

前提・実現したいこと

http://localhost:3000/users/sign_in でユーザーサインイン画面を表示させたいです。

現状
トップ画面は思い通りに表示ができています
サインイン画面に遷移しようとするとトップ画面が表示され、ブラウザにはエラーメッセージが出てきません。

現在、SNSのような簡単なアプリケーションを作成し始めた段階です。
bootstrapにて大枠のレイアウトを整えて、deviseをインストール。ルーティング,モデル、コントローラー、ビューを書き揃え、いざサインイン画面http://localhost:3000/users/sign_inに入ろうとするとトップページのままでした。

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

http://localhost:3000/users/sign_in に直接入ろうとしてもトップページに入ってしまいます。
コンソールにて

ActionController::RoutingError (No route matches [GET] "/users/sign_in%E3%80%80%E3%81%A7%E3%83%88%E3%83%83%E3%83%97%E7%94%BB%E9%9D%A2%E3%81%AB%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86"):

のメッセージはでていました。

該当のソースコード

Ruby

1views/layouts/application.html.erb 2<!doctype html> 3<html lang="en"> 4 <head> 5 <!-- Required meta tags --> 6 <meta charset="utf-8"> 7 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 8 9 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 10 <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> 11 </head> 12 13 <!-- Bootstrap CSS --> 14 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous"> 15 16 17 <title>My rank</title> 18 19 20 </head> 21 22<body> 23 <div class="jumbotron jumbotron-fluid"> 24 <div class="container"> 25 <h1 class="display-4">My Rankへようこそ!</h1> 26 <p class="lead">ここではあなたが日常や趣味の中で思った「個人的ランキング」を投稿して同じ感性を持った人から共感を得られます!</p> 27 </div> 28 </div> 29 30 <div class="d-flex flex-row-reverse bd-highlight"> 31 <div class="p-2 bd-highlight">ログインor新規登録</div> 32 <div class="p-2 bd-highlight">ログアウトorユーザー名</div> 33 <div class="p-2 bd-highlight">My rank top</div> 34 </div> 35 36 <div class="card" style="width: 18rem;"> 37 <img src="..." class="card-img-top" alt="..."> 38 <div class="card-body"> 39 <h5 class="card-title">ダミー画像です</h5> 40 <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> 41 <a href="#" class="btn btn-primary">Go somewhere</a> 42 </div> 43 </div> 44 45 46 47 <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> 48 <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script> 49 50</body> 51</html> 52

Ruby

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

Ruby

1 2routes.rb 3 4Rails.application.routes.draw do 5 6 devise_for :users 7 root to: "posts#index" 8end

試したこと

デバイスをインストールしなおしました。モデル、マイグレーションファイルを作り直し、元々bootstrapで作っていたログイン画面も教材のシンプルな物に変えました。

###補足情報

初投稿、初学者で情報不足や至らぬ点があるかと思います。
どうかどのように質問したら良いか、どのように思考したらいいかなどご教授のほどよろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

「推測」で回答します。

ただ、 でトップ画面に行ってしまうというのがエラーメッセージのURLに含まれていますが、

"/users/sign_in**%E3%80%80%E3%81%A7%E3%83%88%E3%83%83%E3%83%97%E7%94%BB%E9%9D%A2%E3%81%AB%E8%A1%8C%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86**"

実際はどういうURLでアクセスされたのでしょうか。

コントローラも提示してもらいたいですが、そもそもroutesにusers/sign_inに関するものがないですし、まずはそこかと。(もしdevise :usersで紐づけできてるなら不要な文言がURLに入っているので実際はusers/sign_inにアクセスできてない/users/sign_in でトップ画面に行ってしまうでアクセスしている。)
で、deviceを利用しているがために、「存在しないURL=認証されてない」と判定されてトップページにリダイレクトされるのだと思います。
どう対応するかは設計次第ですね。

投稿2020/12/05 22:54

編集2020/12/05 22:56
m.ts10806

総合スコア80875

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

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

Pro01x19

2020/12/07 02:51

回答ありがとうございます!無事解決することができました! 返信遅くなり申し訳ございませんでした!
m.ts10806

2020/12/07 03:45

大抵はエラーメッセージ読めば何とかなります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問