我开始使用 Rails 已经有几天了。我正在尝试制作一个表单应用程序,要求用户在每种情况下都必须登录。
所以我让用户登录 Railcast:http: //railscasts.com/episodes/250-authentication-from-scratch
现在,我需要在我的其他控制器中进行登录,因此用户在没有登录的情况下无法访问整个应用程序。我尝试了这种方法:
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
helper_method :current_user
private
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def logged_in
return true if current_user
end
def login_required
if logged_in false
redirect_to log_in_path and return false
end
end
end
类别控制器.rb
class CategoriesController < ApplicationController
before_filter :login_required
def new
def index
@categories = Categorie.all
end
它返回我这个错误:
CategoriesController#index 中的 ArgumentError 参数数量错误(1 代表 0)
Extracted source (around line #14):
def logged_in
return true if current_user
end
我的 before_filter :login_required 需要别的东西吗?我真的不明白这个错误。