これは私の最初の Rails プロジェクトです。「サブスクライバー」と「ユーザー」の両方のコントローラーとモジュールを備えた Web アプリがあります。(サブスクライバーはメールのみを提供し、ユーザーはサインインしています)
サインインしているユーザーのみがアクセスできるサブスクライバーコントローラーに「インデックス」メソッドを作成することにより、ユーザーがサブスクライバーのリストにアクセスできるようにしようとしています。
これを使ってやってみます
class SubscribersController < ApplicationController
before_filter :signed_in_user, only: [:index]
def index
@subscribers = Subscriber.all
end
signed_in_user は次のように定義されています。
class UsersController < ApplicationController
def signed_in_user
unless signed_in?
store_location
redirect_to signin_url, notice: "Please sign in."
end
end
とsigned_in?セッションヘルパーにあります:
module SessionsHelper def sign_in(user) cookies.permanent[:remember_token] = user.remember_token self.current_user = ユーザー終了
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
def signed_in?
!current_user.nil?
end
しかし、サブスクライバーコントローラーから signed_in_user にアクセスできないため、機能しません。これを行うための「正しい」方法は何でしょうか?
ありがとう!