簡體   English   中英

在Rails3中使用相同的提交按鈕登錄/注冊

[英]Login/Register with the same submit button in Rails3

我嘗試在任何地方搜索,但似乎找不到答案。

我在我的Rails應用程序中使用Authlogic進行身份驗證。 我想允許用戶使用相同的表單和相同的提交操作/按鈕登錄或注冊。 我要執行的行為的一個示例是tumblr如何處理其登錄/注冊: http : //www.tumblr.com/

當用戶輸入其電子郵件地址和密碼時(如果已經有一個帳戶),它將登錄到其帳戶儀表板中。 可以使用相同的表單來創建新博客(帶有URL文本字段)。

我的實際形式非常簡單:

= form_for(@user_session) do |f|
  = f.text_field :email, :placeholder => "email address"
  = f.password_field :password, :placeholder => "password"
  = f.submit "get started"

我嘗試在應用程序控制器中創建一個自定義操作,該操作會根據用戶是否已經存在而重定向到適當的控制器,但無濟於事:

  def login_or_register
    params[:user] = params[:user_session]
    if User.find_by_email(params[:user][:email])
      redirect_to :controller => "user_sessions", :action => "create"
    else
      redirect_to :controller => "users", :action => "create"
    end
  end

然后,我嘗試從user_sessions/new頁(在UserSessions控制器內部)創建一個不存在的新用戶。 同樣,我嘗試創建新用戶,然后從“ Users控制器自動登錄。 這兩種方法都不起作用,這時我已經還原了代碼,因此沒有使用的示例。

任何幫助或建議,將不勝感激...非常感謝!

-Z

Imho,如果不存在的話,可以在user_sessions / new中創建用戶的方法起作用。

可惜您沒有代碼了。 這是我能想到的一個難題:創建新用戶時,請確保將您的用戶active因為Authlogic不允許您為不活動的用戶創建UserSession

這也是一個提示:像git一樣使用VCS

如果您有新的想法或瘋狂的想法,請從您的主人那里創建一個新分支。 您不必還原任何內容,僅需切換分支即可,如果您的crazy_idea分支實在太瘋狂了,則可以刪除它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM