我如何明确调用 Devise sign_in?我的 Controller 中已经有一个名为 sign_in
的方法.
我试过
require 'devise/controllers/sign_in_out'
Devise::Controllers::SignInOut.sign_in @user
cannot load such file -- devise/controllers/sign_in_out
和
include Devise::Controllers::Helpers
Devise::Controllers::Helpers.sign_in @user
undefined method `sign_in' for Devise::Controllers::Helpers:Module
但都没有奏效。
我也试过
alias_method :devise_sign_in, :sign_in # keep hold of the Devise sign_in method before we overwrite it.
devise_sign_in @user
它在浏览器中工作,但是当我运行时
rspec
它给出了这个错误:/rsync/BK-Development/app/controllers/community_members_controller.rb:5:in
alias_method': undefined method
sign_in' for classCommunityMembersController' (NameError) from /rsync/BK-Development/app/controllers/community_members_controller.rb:5:in
'
我在这里找到了该方法的来源:
https://github.com/plataformatec/devise/blob/v2.2/lib/devise/controllers/helpers.rb
设计版本 2.2.8
最佳答案
好的,我可以使用它
include Devise::Controllers::Helpers
alias_method :devise_sign_in, :sign_in # keep hold of the Devise sign_in method before we overwrite it.
...
devise_sign_in @user
我还是想知道如何直接调用一个方法。在 Java 中,您可以通过指定完整的包和方法来调用任何方法。在 Ruby 中也应该有一种方法可以做到这一点。
关于ruby-on-rails - 如何调用完全限定的 Devise sign_in 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24005201/