Ruby on rails 如何使用仅对帐户唯一的用户名对Authlogic中的用户进行身份验证

Ruby on rails 如何使用仅对帐户唯一的用户名对Authlogic中的用户进行身份验证,ruby-on-rails,ruby-on-rails-3,authlogic,Ruby On Rails,Ruby On Rails 3,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][:use

为了我的生命,我不能让它工作。我有一个应用程序,其中每个帐户都有一个唯一的子域。在该帐户中,用户具有唯一的用户名,但该用户名在整个应用程序中可能不是唯一的

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? && !@current_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\u session.save
行中,这似乎失败了,因为它根据数据库中用户名的第一个实例进行验证,而不是根据作用域为当前帐户的用户名进行验证

如有任何建议,将不胜感激

谢谢


Robin

创建我的会话时的选项就是答案。

您是否尝试过编写一个自定义验证器来检查指定域内的唯一性?我在确保子域内的唯一性方面没有问题,而是Authlogic在验证用户详细信息时似乎不尊重子域约束。例如,当用户会话是使用用户名robinfisher创建的时,它应该查找该用户名作用于相关帐户的用户。啊,好的。。我误解了你的问题……)