0

私は、Michael Hardtl による Rails チュートリアルの第 8 章にいます。私はこのコードを何度も調べ、stackoverflow で同様の質問をいくつか見ましたが、どれも役に立ちませんでした。シンプルなサインインページを作ろうとしています。私はラインに何か問題があると確信しています

@current_user ||= User.find_by(remember_token: remember_token)  

以前に find_by メソッドを使用しようとしましたが、機能しません。find_by に _ を追加してから、次のように探しているものを追加すると、通常は機能します。

@current_user ||= User.find_by_remember_token(remember_token)

しかし、それも機能していません。以下は私の完全なコードです。私を助けてくれる人に感謝します!

module SessionsHelper
    def sign_in(user)
        remember_token = User.new_remember_token
        cookies.permanent[:remember_token] = remember_token
        user.update_attribute(:remember_token, User.encrypt(remember_token))
        self.current_user = user
    end

    def current_user=(user)
        @current_user = user
    end

    def current_user
        remember_token = User.encrypt(cookies[:remember_token])
        @current_user ||= User.find_by(remember_token: remember_token) #The find_by method might not work
    end

    def signed_in?
        !current_user.nil?
    end
end

これは、ページを開こうとしたときにブラウザに表示される内容です。

NoMethodError in Static_pages#home

Showing /Users/philip7899/rails/sample_app/app/views/layouts/_header.html.erb where line #9 raised:

undefined method `find_by' for User(Table doesn't exist):Class
4

1 に答える 1