2012-01-03 74 views
0

對於我的生活,我無法得到它的工作。我有一個應用程序,其中每個帳戶都有一個唯一的子域。在該帳戶中,用戶具有唯一的用戶名,但用戶名在整個應用程序中可能並不唯一。如何在Authlogic中使用用戶名只對帳戶唯一的用戶名進行身份驗證

def create 
    @user_session = @current_account.user_sessions.new(params[:user_session]) 
    @user = @current_account.users.find_by_username_or_email(params[:user_session][:username]) 
    if @user_session.save 
    flash[:notice] = "Welcome back #{current_user.first_name}" 
    if @user_session.user.account.is_new? && [email protected]_account.stop_wizard? 
     redirect_to :controller => "site", :action => "welcome", :id => "one" 
    else 
     redirect_to dashboard_url 
    end 
    else 
    render :action => :new 
    end 
end 

這似乎是因爲它驗證對數據庫中的用戶名的第一個實例,而不是針對被限制在當前帳戶的用戶名就行if @user_session.save失敗。

任何意見,將不勝感激。

感謝我的創建會話時

羅賓

+0

您是否試過簡單地編寫一個自定義驗證器來檢查指定域內的唯一性? http://www.paulsturgess.co.uk/articles/33-how-to-write-custom-validation-in-ruby-on-rails – Tigraine 2012-01-03 18:56:30

+0

我在確保子域內唯一性方面沒有問題,而不是Authlogic在驗證用戶詳細信息時似乎並不尊重子域約束,例如當使用用戶名robinfisher創建用戶會話時,它應該查找具有該用戶名的用戶範圍爲相關帳戶。 – 2012-01-03 19:02:39

+0

好的..我誤解了你的問題.. :) – Tigraine 2012-01-03 20:42:02

回答

相關問題