web-dev-qa-db-ja.com

デバイスの現在のユーザーIDを取得する

Deviseを使用してコントローラーで現在のユーザーIDを取得するにはどうすればよいですか?

私のコントローラーには次のようなものがあります:

def index

me = current_user
c = User.find(me)
@sheets = c.time_sheets
end

「IDのないユーザーが見つかりませんでした」というエラーが表示されます。

もしUser.find()に静的な数値を入れれば機能しますが、もちろんそれは私が望んでいることではありません。どんな助けでも大歓迎です。

ありがとう!

12
mild0d

以下のように現在のインデックスアクションを置き換えます

def index    
   if current_user
     @sheets = current_user.time_sheets
   else
     redirect_to new_user_session_path, notice: 'You are not logged in.'
   end
end

ユーザーがログインしていない場合、つまりcurrent_user = nilの場合、ユーザーはフラッシュメッセージとともにログインページにリダイレクトされます。

15
Kirti Thorat