Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何通过Rails中的designe以编程方式登录用户_Ruby On Rails_Rspec_Ruby On Rails 4_Devise_Testunit - Fatal编程技术网

Ruby on rails 如何通过Rails中的designe以编程方式登录用户

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

我需要一个自定义机制来使用Desive with Rails 4进行登录。因此我在中找到了
符号\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)