如何在设计中自动记住用户 [英] How to automatically keep user remembered in Devise

查看:14
本文介绍了如何在设计中自动记住用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在构建一个应用程序,我希望用户在其计算机上自动被记住,而没有记住我"复选框.

I am building an app in which I would like the users to automatically be remembered on their computers, without having a "remember me" check box.

我读到我可能需要调用 @user.remember_me!,但不知道从哪里调用它,因为 Devise 控制器是隐藏的.

I read that I may have to call @user.remember_me!, but not sure where to call it since the Devise controllers are hidden.

我曾考虑在 sign_in 表单中添加一个隐藏的复选框字段,该复选框默认标记为复选框,但我希望我可以在控制器端执行此操作.

I was considering adding a hidden checkbox field in the sign_in form with the checkbox marked by default, but I was hoping I could do this on the controllers side.

知道如何做到这一点吗?

Any idea how this could be done?

谢谢!

推荐答案

我认为定制您的设计控制器是解决问题的方法.

I think customizing your devise controller is the way to go here.

目标:自动为每个人设置记住我.

Goal: automatically set remember-me for everybody.

首先,创建一个设计会话控制器.让我们告诉 Rails 路线

First, create a devise sessions controller. Let's tell rails routes about it

config/routes.rb

devise_for :users, :controllers => {:sessions => 'sessions'}

app/controllers/sessions_controller.rb

class SessionsController < Devise::SessionsController

  def create
    params[:user].merge!(remember_me: 1)
    super
  end

end

这样,用户的记住我将始终设置为 true.耶!

This way, the user's remember me will always be set to true. yay!

然后您需要编辑登录表单以不显示remember_me"复选框.

You'll then want to edit the login form to not display the remember_me checkbox.

此外,在初始化程序中将其更改为远:

Also, change this in the initializer to something far off:

#config.remember_for = 2.weeks
config.remember_for = 1.year

这篇关于如何在设计中自动记住用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆