如何使用user_id = current_user.id

时间:2015-07-26 09:21:49

标签: ruby-on-rails devise

我在1个用户和许多挑战之间存在一对多的关系。我正在使用带有Devise的rails 4

我想列出当前用户的挑战。

到目前为止我已经

@challenge = User.find(current_user.id).challenges

我也试过

@challenge = User.find(current_user).challenges

我也试过@challenge = current_user.challenges

但它不起作用。我得到错误"undefined method每个'为nil:NilClass“`这通常意味着@challenge没有传递给视图我是否犯了某种语法错误?

如果我在rails控制台中执行User.find(1).challenges它可以正常工作,所以我可能没有正确使用current_user.id

1 个答案:

答案 0 :(得分:1)

看起来当您尝试访问该页面时,用户未登录,因此current_user设置为nil

current_user.challenges将完成获取与此用户关联的所有challenges的工作。您可以在调用此代码之前使用user_signed_in?中的devise方法,以确保current_user始终可用。