Ruby on rails 使用AuthLogic在ROR中创建会话后,当前用户为nil
我在AuthLogic和当前用户方面有点问题 我有一个Flex4应用程序,前端使用Cairngorm框架,后端使用RubyonRails 我可以通过浏览器很好地登录,并且只使用ROR。然而,当我通过我的Flex4应用程序尝试它时,它第一次失败,第二次工作 正在发生的事情是,在user_sessions_controller.rb中,我有一个电话要打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。第二次调用它时(不重新启动服务器或
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您能在控制器中向我们展示您当前的用户方法吗?