Ruby on rails 如何通过Rails中的designe以编程方式登录用户
我需要一个自定义机制来使用Desive with Rails 4进行登录。因此我在中找到了Ruby on rails 如何通过Rails中的designe以编程方式登录用户,ruby-on-rails,rspec,ruby-on-rails-4,devise,testunit,Ruby On Rails,Rspec,Ruby On Rails 4,Devise,Testunit,我需要一个自定义机制来使用Desive with Rails 4进行登录。因此我在中找到了符号\u方法: 但是,这是从web登录某人的正确方式吗?特别是,当用户登录时,它会做Desive做的所有事情,比如记录日期/时间戳、IP地址、登录计数等吗?或者这只是出于测试目的?这是通过编程方式登录用户的正确标准方法。查看designe登录代码,您可以看到他们也使用此方法。designe提供了一系列帮助,其中两个是: sign_in(resource_or_scope, *args) sign_in_an
符号\u方法:
但是,这是从web登录某人的正确方式吗?特别是,当用户登录时,它会做Desive做的所有事情,比如记录日期/时间戳、IP地址、登录计数等吗?或者这只是出于测试目的?这是通过编程方式登录用户的正确标准方法。查看designe登录代码,您可以看到他们也使用此方法。designe提供了一系列帮助,其中两个是:
sign_in(resource_or_scope, *args)
sign_in_and_redirect(resource_or_scope, *args)
您可以从任何控制器使用这些
如果使用sign\u-in
已对您有效,但用户仍处于空白页,请检查日志文件,查看是否有重定向,以及重定向到的位置。或者使用上面的第二个助手明确重定向
参考资料:
长话短说:是的,登录@user完成了Desive在用户登录时通常会做的所有事情。它可能很有用,例如,允许管理员作为其用户之一登录
看来,登录
不会更新我上面提到的用户
模型的所有其他字段,所以我必须手动执行,或者想出一些简单的方法来调用。否则,您是对的,Desive在内部使用sign\u-in
。sign\u-in不会对用户进行身份验证,它只是对用户进行了登录。看看这个问题
sign_in(resource_or_scope, *args)
sign_in_and_redirect(resource_or_scope, *args)