私は、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