我建立一个应用程序中,我希望用户能够自动地在他们的计算机记忆,而无需“记住我”复选框。
我看,我可能要叫@user.remember_me!
,但不知道在哪里把它,因为设计的控制器是隐藏的。
我正在考虑在默认情况下标复选框sign_in窗体中添加隐藏复选框场,但我希望我能做到这一点的控制器侧。
任何想法如何可以这样做?
谢谢!
我建立一个应用程序中,我希望用户能够自动地在他们的计算机记忆,而无需“记住我”复选框。
我看,我可能要叫@user.remember_me!
,但不知道在哪里把它,因为设计的控制器是隐藏的。
我正在考虑在默认情况下标复选框sign_in窗体中添加隐藏复选框场,但我希望我能做到这一点的控制器侧。
任何想法如何可以这样做?
谢谢!
我想自定义色器件控制器是去这里的路。
目标:自动设置记忆,我给大家。
首先,创建有一项会话控制器。 让我们告诉Rails它的路线
配置/ routes.rb中
devise_for :users, :controllers => {:sessions => 'sessions'}
应用程序/控制器/ sessions_controller.rb
class SessionsController < Devise::SessionsController
def create
params[:user].merge!(remember_me: 1)
super
end
end
通过这种方式,我们记住我的用户将始终被设置为true。 好极了!
然后,您将要编辑的登录表单不显示remember_me复选框。
此外,在初始化的东西遥远更改此:
#config.remember_for = 2.weeks
config.remember_for = 1.year
如果你在阅读这个色器件拉动请求: https://github.com/plataformatec/devise/issues/1513 ,受制裁的方式默认记得似乎只要在您的用户类中定义:
class User
def remember_me
true
end
end
这应该是一个持久的选项,这样你可以因为你希望它是一个永久选项做到这一点上创建后钩用户。