Ruby on rails 使用AuthLogic在ROR中创建会话后,当前用户为nil

Ruby on rails 使用AuthLogic在ROR中创建会话后,当前用户为nil,ruby-on-rails,flex4,authlogic,cairngorm,Ruby On Rails,Flex4,Authlogic,Cairngorm,我在AuthLogic和当前用户方面有点问题 我有一个Flex4应用程序,前端使用Cairngorm框架,后端使用RubyonRails 我可以通过浏览器很好地登录,并且只使用ROR。然而,当我通过我的Flex4应用程序尝试它时,它第一次失败,第二次工作 正在发生的事情是,在user_sessions_controller.rb中,我有一个电话要打 self.current\u user.to\u xml 第一次调用create操作时,当前的用户对象返回nil。第二次调用它时(不重新启动服务器或

我在AuthLogic和当前用户方面有点问题

我有一个Flex4应用程序,前端使用Cairngorm框架,后端使用RubyonRails

我可以通过浏览器很好地登录,并且只使用ROR。然而,当我通过我的Flex4应用程序尝试它时,它第一次失败,第二次工作

正在发生的事情是,在user_sessions_controller.rb中,我有一个电话要打

self.current\u user.to\u xml

第一次调用create操作时,当前的用户对象返回nil。第二次调用它时(不重新启动服务器或浏览器),它将是正确的当前用户

因此,这让我相信当前用户是在create操作中的render命令之后的某个时间设置的


如果我需要我的rails控制器在创建操作中返回当前用户,我将如何执行此操作?

只是遇到了完全相同的问题…不确定为什么会发生这种情况,但我尝试在我的
用户会话\u控制器.rb中的创建方法中调用当前用户,如下所示解决

  def create
    @user_session = UserSession.new(params[:user_session])

    if @user_session.save
      current_user = UserSession.find.user
      current_user.increment_login_count_for_current_memberships!
      flash[:notice] = 'Sign in successful.'
      redirect_to root_path
    else
      render action: "new"
    end
  end

希望这有帮助

这是因为当前用户的helper方法通常定义为before\u操作。这意味着,在创建会话期间使用before操作之前,该操作没有运行

我还使用了这个UserSession.find.user,它非常适合这个用例

干杯,
Niklas

您能在控制器中向我们展示您当前的用户方法吗?