【问题标题】:Getting undefined method in my before_filter clause在我的 before_filter 子句中获取未定义的方法
【发布时间】:2016-09-01 22:27:56
【问题描述】:

我使用的是 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

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

【问题讨论】:

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


    【解决方案1】:

    before_filter 在类的上下文中执行。

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

    试试这个:

    def store_last_page_visited
      return if logged_in?
    
      session[:last_page_visited] = request.url
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      • 2022-06-13
      • 2017-09-06
      • 2011-04-07
      • 1970-01-01
      • 2018-03-05
      • 1970-01-01
      相关资源
      最近更新 更多