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

时间:2012-01-03 18:52:44

标签: 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][: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_session.save行上失败,因为它验证了数据库中第一个用户名实例,而不是对作用于当前帐户的用户名。

任何建议都将受到赞赏。

由于

罗宾

1 个答案:

答案 0 :(得分:1)

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