在rails中设置电子邮件Cookie并根据电子邮件Cookie查找用户

时间:2017-08-17 09:42:03

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

对铁杆有点新意,我需要一些帮助!

我正在使用设计宝石,并且我试图通过设置cookies[:email]来找到刚刚注册或尝试登录的当前用户。

我在sessions_contoller.rb和registrations_contoller.rb中有以下内容

def create
  cookies[:email] = params[:user][:email]
  #and some other code as well
end

def destroy
  super
  cookies.delete :email
end

以下方法是根据电子邮件找到用户:

def current_client
  if cookies["email"].present?
    User.find_by_email(params[:email])
  end
end

如果我从浏览器检查,我可以看到电子邮件cookie在那里,但不知道如何从rails c检查。

但是current_client方法似乎并没有起作用。

知道这里可能有什么问题吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

设置Cookie的值时,请尝试将其设置如下:

cookies[:email] = {:value => params[:user][:email], :domain => :your_domain, :expires => 30.days.from_now}

此外,您可以通过在控制器中打印其值来检查cookie,以验证它是否已设置。

相关问题