2015-02-06 90 views
0

我已经梳理了所有的文档和方法,我可以找到,但无法弄清楚这一点。我有一个运作的设计设置,除了注销后登录电子邮件字段为空。无论是选中还是取消选中“以前的登录”,都会选中“记住我”复选框。设计不记得登录证书

这里的配置值我到目前为止:

我登录的看法:

<%= form_for(resource, :html => {:class => "" }, as: resource_name, url: user_session_path) do |f| %> 
<fieldset> 
    <div class="form-group"> 
     <%= f.email_field :email, class: "form-control", placeholder: "Email", autofocus: true %> 
    </div> 
    <div class="form-group"> 
     <%= f.password_field :password, class: "form-control", placeholder: "Password", autocomplete: "off" %> 
    </div> 


    <% if devise_mapping.rememberable? -%> 
    <div class="checkbox"> 
     <label> 
      <%= f.check_box :remember_me %> Remember Me 
     </label> 
    </div> 
    <% end -%> 
    <input class="btn btn-lg btn-success btn-block" type="submit" value="Sign In"> 
    <%= link_to new_user_password_path, class: "btn btn-lg btn-info btn-block" do %>Forgot Password<% end %> 
    <%= link_to user_registration_path, class: "btn btn-lg btn-primary btn-block" do %>Register<% end %> 
</fieldset> 
<% end %> 

我的路线与自定义会话控制器:

devise_for :users, :skip => [:sessions, :registrations], :controllers => { :registrations => 'users/registrations', :sessions => 'users/sessions' } 

class Users::SessionsController < Devise::SessionsController 

    def create 
    current_user.remember_me = true 
    super 
    end 

end 

设计初始化:

config.remember_for = 2.weeks

型号:

devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :timeoutable 

    # http://stackoverflow.com/questions/14417201/how-to-automatically-keep-user-remembered-in-devise  
    def remember_me 
    true 
    end 

我认为这就是它 - 我越读我我也许在这里的东西喜欢的是电子邮件/用户名登录场旨在与用户电子邮件/用户名来填充?

如果有帮助,我的cookies似乎是空的。

回答

1

发生这种情况是因为remember_me在params中作为“on”,但与Devise :: TRUE_VALUES进行比较,它们是[true,1,'1','t','T','true','TRUE “]。

最简单的方法就是确保您的remember_me成为其中的一个值。复选框的例子(注意:值=“1”):

<input type="checkbox" name="user[remember_me]" value="1" checked="checked" /> 

,如果你想让它与“上”工作的另一种方式,你可以“”增值制定:: TRUE_VALUES。所以在你的配置/初始化/ devise.rb只需添加为第一行:

Devise::TRUE_VALUES << ["on"] 
+0

这是行不通的。我的复选框HTML是: 2015-02-06 06:57:32