Rails,HAML 记住我复选框不起作用
Rails, HAML remember me checkbox not working
所有,
我正在处理登录表单。作为该表单的一部分,我包含了一个 "Remember me" 复选框,如果选中,该复选框旨在将加密的会话哈希存储在用户数据库中。我可能在基本方面遗漏了一些东西,但就我的生活而言,我无法让复选框正常运行。具体来说,每次提交登录都会导致将会话哈希存储到数据库中,即使未单击该复选框,这让我相信该复选框根本没有正确设置。
告诉我错误的方法!
登录视图:
.container
%h1 Log in
%div{:class => "row"}
%div{:class => "col-md-6 col-md-offset-3"}
= form_for :session, :url => login_path, :class => "form-horizontal", :id => "login_form" do |f|
%div{:class => "form-group"}
= f.label :email, "Email Address"
= f.text_field :email, :class => "form-control", :id => "email", :placeholder => "Email"
%div{:class => "form-group"}
= f.label :password, "Password"
= f.password_field :password, :class => "form-control", :id => "password", :placeholder => "Password"
%div{:class => "form-group"}
= f.label :remember_me, "Remeber me"
= f.check_box :remember_me, :type => "checkbox", :value => "1", :checked => "1"
= f.submit "Go Get Em!", :class => "btn btn-default pull-right"
%p Don't have an account? #{ link_to 'Sign Up', signup_path}
以及会话控制器方法:
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
log_in(user)
params[:session][:remember_me] == '1' ? remember(user) : forget(user)
remember user
redirect_to root_url #redirect_to user
else
flash.now[:danger] = "Invalid email/password comination" #fix
render 'new'
end
end
params[:session][:remember_me] == '1' ? remember(user) : forget(user)
remember user
我不太确定你那里有第二个 "remember user",这可能是导致你遇到的问题。
所有,
我正在处理登录表单。作为该表单的一部分,我包含了一个 "Remember me" 复选框,如果选中,该复选框旨在将加密的会话哈希存储在用户数据库中。我可能在基本方面遗漏了一些东西,但就我的生活而言,我无法让复选框正常运行。具体来说,每次提交登录都会导致将会话哈希存储到数据库中,即使未单击该复选框,这让我相信该复选框根本没有正确设置。
告诉我错误的方法!
登录视图:
.container
%h1 Log in
%div{:class => "row"}
%div{:class => "col-md-6 col-md-offset-3"}
= form_for :session, :url => login_path, :class => "form-horizontal", :id => "login_form" do |f|
%div{:class => "form-group"}
= f.label :email, "Email Address"
= f.text_field :email, :class => "form-control", :id => "email", :placeholder => "Email"
%div{:class => "form-group"}
= f.label :password, "Password"
= f.password_field :password, :class => "form-control", :id => "password", :placeholder => "Password"
%div{:class => "form-group"}
= f.label :remember_me, "Remeber me"
= f.check_box :remember_me, :type => "checkbox", :value => "1", :checked => "1"
= f.submit "Go Get Em!", :class => "btn btn-default pull-right"
%p Don't have an account? #{ link_to 'Sign Up', signup_path}
以及会话控制器方法:
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
log_in(user)
params[:session][:remember_me] == '1' ? remember(user) : forget(user)
remember user
redirect_to root_url #redirect_to user
else
flash.now[:danger] = "Invalid email/password comination" #fix
render 'new'
end
end
params[:session][:remember_me] == '1' ? remember(user) : forget(user)
remember user
我不太确定你那里有第二个 "remember user",这可能是导致你遇到的问题。