このトピックに関して多くの同様の質問があったことを私は知っていますが、答えのどれも関係していません。
事前定義されたパッケージを使用する代わりに、Michael Hartlのアドバイスに従い、独自の認証コードを実装することにしました。しかし、私は鉄道学校からの彼の解決策で問題に直面しています。
githubのチュートリアルコードを使用してコードを直接ダブル/トリプルチェックしました。可能な限り正しく実装していますが、いくつかの大きな問題があります。
Current_userが正しく開始されていません
helpers / sessions_helpers.rb
...
def current_user=(user)
@current_user = user
end
def current_user
#this line of code will change in the tutorial section 9 but its okay for now
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
def signed_in?
!current_user.nil?
end
ビューでヘルパーを使用するコードは<% if signed_in? %>
、認証が機能している場合でも、常にfalseを返します。そして、次のようなユーザーメソッドを介してデータにアクセスしようとcurrent_user.first_name.capitalize
すると、undefined method ``first_name' for nil:NilClass
これはまだチュートリアルのセクション8であることに注意してください(まだセクション9ではありません。基本が機能していないときに、この認証状況にコードを追加したくありません。助けてくれてありがとう...