前提・実現したいこと
Herokuにデプロイしたrailsアプリケーションでログイン機能を実装したいです。
発生している問題
ログイン画面でメアドとパスワードを入力しsubmitボタンを押すと「We're sorry, but something went wrong.」と表示される。
ログイン画面でメールアドレスとパスワードを入力してsubmitボタンを押すと「ログイン失敗」というフラッシュメッセージが表示される。
エラーメッセージ
heroku logsとすると以下のログが出力される。(重要そうなログをピックアップしました。)
2020-06-06T22:59:57.881856+00:00 app[web.1]: [551712e8-72f1-41a0-9b38-75d70b25f70b] ActionView::Template::Error (PG::SyntaxError: ERROR: zero-length delimited identifier at or near """"
2020-06-06T22:59:57.881857+00:00 app[web.1]: LINE 1: SELECT "users".* FROM "users" WHERE "users"."" = $1 LIMIT $2
2020-06-06T22:59:57.881858+00:00 app[web.1]: ^
2020-06-06T22:59:57.881859+00:00 app[web.1]: ):
2020-06-06T22:59:57.881859+00:00 app[web.1]: [551712e8-72f1-41a0-9b38-75d70b25f70b] 32: <a href="ionamata">運営者が投稿する</a>
2020-06-06T22:59:57.881860+00:00 app[web.1]: [551712e8-72f1-41a0-9b38-75d70b25f70b] 33: <a href="kensaku">検索ページ</a>
2020-06-06T22:59:57.881860+00:00 app[web.1]: [551712e8-72f1-41a0-9b38-75d70b25f70b] 34: <a href="kesu">退会したい方はこちら</a>
2020-06-06T22:59:57.881860+00:00 app[web.1]: [551712e8-72f1-41a0-9b38-75d70b25f70b] 35: <% if user_signed_in? %>
2020-06-06T22:59:57.881861+00:00 app[web.1]: [551712e8-72f1-41a0-9b38-75d70b25f70b] 36: <p>ログインしていますよ!</p>
2020-06-06T22:59:57.881861+00:00 app[web.1]: [551712e8-72f1-41a0-9b38-75d70b25f70b] 37: <%= link_to "退会", "kesu" %>
2020-06-06T22:59:57.881862+00:00 app[web.1]: [551712e8-72f1-41a0-9b38-75d70b25f70b] 38: <% else %>
2020-06-06T22:59:57.881862+00:00 app[web.1]: [551712e8-72f1-41a0-9b38-75d70b25f70b]
2020-06-06T22:59:57.881863+00:00 app[web.1]: [551712e8-72f1-41a0-9b38-75d70b25f70b] app/views/layouts/application.html.erb:35
2020-06-07T02:58:12.534223+00:00 app[web.1]: [aa3088b6-c151-4017-928e-7f924fb9515e] TypeError (no implicit conversion of Symbol into Integer): 2020-06-07T02:58:12.534223+00:00 app[web.1]: [aa3088b6-c151-4017-928e-7f924fb9515e] 2020-06-07T02:58:12.534223+00:00 app[web.1]: [aa3088b6-c151-4017-928e-7f924fb9515e] app/controllers/users/sessions_controller.rb:5:in `create'
該当のソースコード
db/migrate/20200603074253_devise_create_users.rb
class DeviseCreateUsers < ActiveRecord::Migration[6.0] def change create_table :users do |t| t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: "" t.string :reset_password_token t.datetime :reset_password_sent_at t.datetime :remember_created_at t.timestamps null: false end add_index :users, :email, unique: true add_index :users, :reset_password_token, unique: true end end
application.html.erb
<!DOCTYPE html> <html> <head> <title>勉強しなさい。</title> <%= csrf_meta_tags %> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_path 'application', 'data-turbolinks-track': 'reload' %> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script language="JavaScript"> myTable = new Array(); myTable[0] = new Array("http://localhost:3000/1"); function rndLink(grp){ myRnd = Math.floor(Math.random() * myTable[grp].length); location.href = myTable[grp][myRnd]; } </script> </head> <body> <p class="notice"><%= notice %></p> <p class="alert"><%= alert %></p> <form> <input type="button" value="おすすめ動画をランダムで" onclick="rndLink(0);"> </form> <a href="/">Topへ戻る</a> <a href="sinki">会員登録</a> <a href="login">ログイン</a> <a href="you">自分のユーザー情報</a> <a href="post">投稿したい</a> <a href="index">投稿一覧を見る</a> <a href="yakyuu">運営者が投稿する</a> <a href="kensaku">検索ページ</a> <a href="kesu">退会したい方はこちら</a> <% if user_signed_in? %> <p>ログインしていますよ!</p> <%= link_to "退会", "kesu" %> <% else %> <p>ログインしていませんよ!新規登録しろ!</p> <%= link_to "新規登録!", "sinki" %> <%= link_to "ログイン", "login" %> <% end %> <%= yield %> </body> </html>
top.html.erb
<h1>ブツべ!</h1> <p>このサイトは2020/4/29から作り始めました。</p> <p>YouTubeでビジネスを学ぼう</p> <h2>余計な誘惑を遮断</h2> <p>YouTubeでビジネス関連の動画を見ているとエンタメ動画を見てしまう…<br>しかしブツべならビジネス関連の動画のみが投稿されています!</p> <h3>サイト作成者のおすすめ!</h3> <a href="1">おすすめ動画1</a> <a href="2">おすすめ動画2</a> <a href="3">おすすめ動画3</a> <a href="4">おすすめ動画4</a> <a href="5">おすすめ動画5</a> <a href="https://twitter.com/share?ref_src=twsrc%5Etfw" class="twitter-share-button" data-show-count="false" data-text="ビジネスYouTuberのまとめサイトブツべ!ビジネスについて学ぶぞ!" data-url="https://butube.herokuapp.com/" data-hashtags="YouTuber">Tweet</a> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
home_controller.rb
class HomeController < ApplicationController def top end def you @myemail = User.find_by(email:session[:email]) @myid = User.find_by(id:session[:id]) end def kesu end def destroy #退会処理 end end
補足情報
Windows 10 home 64ビット
ruby 2.6.6
Ruby on rails 6.0.3.1
PostgreSQL 13beta1
テキストエディタ Atom
色々やっているうちにheroku logsで出力される内容もログインボタンを押した後の挙動も変わって混乱しております。よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー