gpt4 book ai didi

ruby-on-rails - Rails - 参数数量错误(1 代表 0)

转载 作者:行者123 更新时间:2023-12-04 04:36:35 24 4
gpt4 key购买 nike

我现在开始使用 Rails 几天了。我正在尝试制作一个表单应用程序,它要求用户在每种情况下都登录。

所以我让用户登录 Railcast:http://railscasts.com/episodes/250-authentication-from-scratch

现在,我需要在我的其他 Controller 中进行所需的登录,以便用户在未登录的情况下无法访问整个应用程序。
我试过这个方法:

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

category_controller.rb
class CategoriesController < ApplicationController
before_filter :login_required
def new

def index
@categories = Categorie.all
end

它返回给我这个错误:

CategoriesController#index 中的参数错误
参数数量错误(1 代表 0)
 Extracted source (around line #14):    
def logged_in
return true if current_user
end

我的 before_filter :login_required 需要别的东西吗?
我真的不明白这个错误。

最佳答案

您定义了一个名为 logged_in 的方法不带任何参数,但您使用 1 个参数调用它:

if logged_in(false)

你应该这样做:
if logged_in

您的代码应该如下所示:
def logged_in
current_user
end

def login_required
return false if logged_in
redirect_to log_in_path
end

关于ruby-on-rails - Rails - 参数数量错误(1 代表 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19654471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com