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

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

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

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby on Rails 6

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

Ruby on Rails

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

ログイン

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

699閲覧

Couldn't find User with 'id'=1エラーについて

Engineer_traine

総合スコア17

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

Ruby on Rails 6

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

Ruby on Rails

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

ログイン

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2021/07/10 06:24

前提・実現したいこと

現在railsの学習にてuser,greenhouse,reserverモデルを作成しアソシエーションを行なっている最中です。
最初にuserとreserverのモデルの紐付けを行ったのですがその作業は恐らくうまく行っていると思います。
次にuserとgreenhouseのモデルの紐付けを行おうと思ったのですが、greenhouseの方に外部キーを持たせずモデルを作成してしまったため後から外部キーを持たせました。
しかしrails sで起動をかけると最初のページからログインのボタンを押下するタイトルのようなエラーが発生します。
外部キーの設定をする前までは今まで通りログインページに入ることができていました。

以下のサイトを参考に外部キーを後から持たせました。
https://qiita.com/kurawo___D/items/e3694f7a870a1cc4738e

うまく内容を話せれなくて申し訳ありません。

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

ActiveRecord::RecordNotFound in SessionsController#new Couldn't find User with 'id'=1

該当のソースコード

rails

1class ApplicationController < ActionController::Base 2 helper_method :current_user 3 4 def login? 5 if current_user.nil? 6 redirect_to login_path, alert: "ログインしてください" 7 end 8 end 9 10 def already_login? 11 unless current_user.nil? 12 redirect_to user_path, notice: "既にログイン済みです" 13 end 14 end 15 16 def current_user 17 if session[:user_id] 18 current_user ||= User.find(session[:user_id])#この箇所がエラー画面で表示されています。 19 end 20 end 21end 22

試したこと

調べた所ログインページに遷移する際にIDをうまく渡せていないと思いましたので
users/show.html.erbの記述を以下の様に変更しました。
<%= link_to "ルーム予約へ", reservers_path %>

<%= link_to "ルーム予約へ", reservers_path(user.id) %>
しかし相変わらずエラーは解決しませんでした。
どなたかお力をお貸し下さい。

補足情報(FW/ツールのバージョンなど)

mac os Big Surバージョン11.2.3
aws cloud9
rails 6.1

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

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

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

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

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

guest

回答1

0

ベストアンサー

過去のセッションが残ってしまって、適切でないuser_idでの処理が続いてしまっている、ということはありませんか?

Cookieを破棄するなどしても問題が続くか確認してみましょう。

投稿2021/07/10 06:31

maisumakun

総合スコア146018

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

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

Engineer_traine

2021/07/10 06:49

回答ありがとうございます。 cookieを削除したところ直りました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問