2012-09-26 91 views
0

以前有人問過這個問題,但我找不到實際的答案:我如何允許我的用戶通過他們註冊的相同表單登錄?這是方式的客戶端請求/需求,我意識到這是很不理想......我也可以使用我的新用戶表單登錄嗎

用戶

class UsersController < ApplicationController 
    def new 
    @user = User.new 
    end 

    def create 
    @user = User.new(params[:user]) 
    if @user.save 
     sign_in @user 
     render :json => @user.to_json(:only => [:id]) 
    else 
     render :json => @user.errors, :status => "" 
    end 
    end 
end 

會議

class SessionsController < ApplicationController 
    def create 
    user = User.find_by_email(params[:session][:email]) 
    if user && user.authenticate(params[:session][:email]) 
     sign_in user 
     render :json => @user.to_json(:only => [:id]) 
    else 
     render :json => @user.errors, :status => "" 
    end 
    end 
end 

<%= form_for(@user, :html => { :class => "access"}) do |f| %> 
    <%= f.label :firstname, "Firstname" %> 
    <%= f.text_field :firstname, :placeholder => "Your firstname" %> 
    <%= f.label :surname, "Surname" %> 
    <%= f.text_field :surname, :placeholder => "Your surname" %> 
    <%= f.label :email, "Email Address" %> 
    <%= f.text_field :email, :placeholder => "Your email address" %> 
    <%= f.submit "Verify" %> 
<% end %> 

電子郵件被驗證爲唯一的,這可能是一個入口點嗎?例如。如果電子郵件不是唯一的,請檢查名稱和電子郵件或其他內容。

我不知道如何去做這件事。

+0

我不確定你想在這裏做什麼,因爲登錄和註冊是兩個不同的過程。如果用戶嘗試使用現有電子郵件註冊,則可以讓用戶知道您已註冊並提示輸入密碼。 –

+0

是的,我知道他們不同,這就是爲什麼我卡住了。基本上沒有密碼,只需使用姓名和電子郵件登錄即可。所以我想要的是,如果你不存在,你創建了,但如果你是你登錄。 – Jamie

回答

0

我的建議是製作另一個類似AccessController的控制器。它應該使用一個名字,這意味着登錄和註冊,Access是我所能想到的。該控制器應該能夠檢查登錄憑證並登錄或註冊。

+0

是的,這是有道理的,我會給它一個去。 – Jamie

+0

確保接受最適合您的答案。 – weexpectedTHIS

相關問題