2015-02-06 89 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