我有一个使用设计user_signed_in的方法?和current_user助手。鉴于项目中几乎所有控制器都需要这样做......它似乎是成为轨道问题的一个很好的候选者。但是,当我将相关代码移动到关注点时,我得到:
undefined method 'user_signed_in'?
我想也许可以添加包括Devise :: Controllers :: Helpers会有所帮助......但这无济于事。
我将其修改为具有上述问题的示例,并且在控制器中您需要这样:
include CheckIt
并在控制器关注目录中显示如下所示的check_it.rb:
module CheckIt
extend ActiveSupport::Concern
include Devise::Controllers::Helpers
included do
before_action self.checkit
end
module ClassMethods
def checkit
puts "user_signed_in? #{user_signed_in?}"
end
end
end
然后,只要您访问该控制器的某个方面,它就会说undefined method 'user_signed_in?'