验证未定义的方法? form main :: Object

时间:2016-09-13 14:07:09

标签: ruby sinatra

我现在正在学习Sinatra,我正在建立一个小博客。我用authenticated?方法遇到了一些问题。我已经设置了身份验证,现在我希望只有在用户通过身份验证后才会加载我的应用程序的其余部分。所以,在我app.rb我有以下内容:

helpers do
  def current_user
    @current_user ||= User.find(session[:user_id]) if session[:user_id]
  end

  def authenticated?
    redirect '/login' unless current_user
  end
end

if authenticated?
  # get '/' { ... }
  # get '/new' { ... }
  # post '/new' { ... }
  # the rest of an app (creating, updating and deleting posts go here)
end

当我运行应用程序时,它会返回以下错误

undefined method authenticated? form main::Object

我做错了什么?

1 个答案:

答案 0 :(得分:1)

根据docs,您使用authenticated?方法,如下所示:

get '/' do
  if authenticated?
    # something
  else
    # something else
  end
end