在设计中获取当前用户ID

时间:2014-02-28 22:07:00

标签: ruby-on-rails ruby-on-rails-4 devise

如何使用设计获取控制器中的当前用户ID?

在我的控制器中,我有类似的东西:

def index

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

我收到一条错误消息,说“找不到没有ID的用户”。

如果我在User.find()中输入一个静态数字,它可以工作但当然这不是我想要的。任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:14)

将当前索引操作替换为

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,那么用户将被重定向到带有flash消息的登录页面。