在我的before_filter子句中获取未定义的方法

时间:2016-09-01 22:27:57

标签: ruby-on-rails methods undefined before-filter

我正在使用Rails 4.2.7。我想根据特定条件定义过滤器。所以我有

class ApplicationController < ActionController::Base
  before_filter :store_last_page_visited unless logged_in?

…

  private

  def current_user
    @current_user ||= User.find_by(id: session[:user_id])
  end

  def logged_in?
    !current_user.nil?
  end

  def store_last_page_visited
    session[:last_page_visited] = request.url
  end

  helper_method :current_user, :logged_in?

但是,当我访问我的应用程序中的页面时,我收到错误

undefined method `logged_in?' for ApplicationController:Class Did you mean? logger

当我指定时,我需要做些什么来让我的过滤器执行?

1 个答案:

答案 0 :(得分:0)

before_filter在类的上下文中执行。

#logged_in?在类实例的上下文中定义。

试试这个:

def store_last_page_visited
  return if logged_in?

  session[:last_page_visited] = request.url
end