2012-10-12 32 views
0

我正在使用設計進行身份驗證。 如果電子郵件已存在,則會將用戶登錄。 如果電子郵件不存在,則會使用這些憑據創建新用戶。 應該只有一個提交按鈕和一個電子郵件和密碼字段。我想要做的是將登錄和註冊表單作爲一個表單

+0

這是一個sql相關的問題......你在哪裏存儲用戶憑證? – Weacked

+0

你能改說你的問題嗎?這取決於用戶在註冊和登錄時提供的憑據,對吧? – uday

+0

我在mysql數據庫中存儲用戶憑證。 – Nar

回答

1

這是可能的,以取得與寫該條件在控制器

例如

def create 
@user = @user.find_or_create_by(params[:user]) 
.... 
.... 
end 

def create 
    @user = User.find(params[:user]) 
    unless @user.present? 
    @user = User.new(params[:user]) 
    if @user.valid? 
     ... 
    else 
     ... 
    end 
end 
end 

或#爲色器件 - 在註冊控制器

def create 
    @user = User.find_by_email(params[:user][:email]) 
    if @user.present? 
    sign_in(resource_name, resource) 
    else 
    if resource.save 
     if resource.active_for_authentication? 
     ... 
     ... 
     else 
     ... 
     ... 
     end 
    else 
     ... 
     ... 
    end 
    end 
end 
+0

我正在使用Devise,以及如何調用它的方法? – Nar

+0

你可以在註冊控制器或會話控制器中寫入。 –

+0

可能會創建一個新的控制器調用方法Devise控制器? – Nar

0

您爲user_session創建了一個表單,該表單將轉至create操作。

在某個地方的服務器端,您可以從您的create操作中調用此命令。我會提出一個方法UserSession

if User.find_by_email(email) 
    # check credentials 
else 
    # create user 
end 
+0

如何使用設計方法進行登錄或註冊? – Nar

相關問題