RSpecでvalid_sessionの例を見つけるのに問題があり、承認を追加した後、すべてのスキャフォールドテストが壊れています。
Michael HartlのRailsチュートリアルでは、ここで説明する認証を使用しています。ただし、すべてのページにログインする必要があり、サインインなどに「skip_before_filter」を使用する必要があります。
ユーザーフィクスチャを追加しました。これは、ロードされることを確認しました。
userexample:
id: 1
name: Example Name
email: examplename@example.com
password_digest: $2a$10$NuWL8f2X0bXaCof3/caiiOwlF2rago7hH10JECmw1p75kEpf0mkie
remember_token: YXjPrFfsK8SFQOQDEa90ow
次に、コントローラーの仕様で
def valid_session
{ remember_token: "YXjPrFfsK8SFQOQDEa90ow" }
end
セッションヘルパーのコード
module SessionsHelper
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
end
def signed_in?
return !current_user.nil?
end
def sign_out
self.current_user = nil
cookies.delete(:remember_token)
end
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
end
意図したとおりにvalid_sessionを使用していますか?セッションでremember_tokenを提供することは、sign_inでユーザーに明示的にサインインしなくても機能しますか?これは他の方法で解決できますか?