2014-03-02 24 views
0

這是我的登錄頁面:覆蓋登錄狂歡的功能/ spree_auth_devise

<%= form_for Spree::User.new, :as => :spree_user, :url => spree.spree_user_session_path do |f| %> 

     <%= f.email_field :email %> 
     <%= f.password_field :password %> 

    <%= f.submit Spree.t(:login) %></p> 

<% end %> 

創建於控制器部分user_sessions_controller_decorator.rb文件。

Spree::UserSessionsController.class_eval do 

     def create 
      @user = Spree::User.new 
      @user.email = params['spree_user']['email'] 
      @user.password = params['spree_user']['password'] 
      authenticate_spree_user(@user)  

      if spree_user_signed_in? 
       # sign_in(:spree_user, @user) 
       redirect_to dashboards_profile_path 
      else 
       redirect_to user_signin_path 
      end 
    end 
end 

它拋出錯誤, 給錯誤:NoMethodError(未定義的方法`authenticate_spree_user」爲#):

我不確定如何覆蓋大禮包登錄功能&如何處理簽到過程中對用戶進行驗證。

回答

2

您嘗試使用的方法是authenticate_spree_user!

我建議你檢查user_sessions_controller到spree_auth_devise source code

+0

我檢查的鏈接。但我在這裏關於重寫認證感到困惑。我不確定我是否會覆蓋狂熱身份驗證或過度使用spree_auth。是否請將我重定向到一些更簡單的博客文章,我可以看看它嗎? – Ajay

+0

你想重寫哪部分認證? – kennyadsl