如何在Devise中定义current_user?

时间:2015-05-27 04:14:28

标签: ruby-on-rails devise

我想在我的RoR应用中打印当前的用户电子邮件。为此,我确实使用了下一个代码:

User.current_user

并打印下一个错误:undefined method current_user'对于#`

但是当我只使用current_user时,它不会打印任何内容。我在Google和Stack中搜索过,试图使用它们的答案,但没有。

如何向用户发送电子邮件?

2 个答案:

答案 0 :(得分:2)

在控制器中,仅current_user将返回当前登录的用户。因此current_user.email将返回signed_in用户的电子邮件。对于非签名用户,current_user将返回nil。 要在控制器中打印当前用户电子邮件,

class TestController < ApplicationController

  def example
    p current_user.try(:email) # try is used because it will return nil if the user is signed in. otherwise, it will raise an error undefined method 'user' for nil class
  end
end

答案 1 :(得分:0)

试试这个。

User.current_user.email