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
失敗。
任何意見,將不勝感激。
感謝我的創建會話時
羅賓
您是否試過簡單地編寫一個自定義驗證器來檢查指定域內的唯一性? http://www.paulsturgess.co.uk/articles/33-how-to-write-custom-validation-in-ruby-on-rails – Tigraine 2012-01-03 18:56:30
我在確保子域內唯一性方面沒有問題,而不是Authlogic在驗證用戶詳細信息時似乎並不尊重子域約束,例如當使用用戶名robinfisher創建用戶會話時,它應該查找具有該用戶名的用戶範圍爲相關帳戶。 – 2012-01-03 19:02:39
好的..我誤解了你的問題.. :) – Tigraine 2012-01-03 20:42:02