Ruby on rails Rails-返回给定参数的所有用户ArgueMnError(1表示0)
我有一个具有两列的用户模型,并尝试创建一个方法,该方法接受用户名参数并返回具有给定参数的所有用户:Ruby on rails Rails-返回给定参数的所有用户ArgueMnError(1表示0),ruby-on-rails,model,parameter-passing,Ruby On Rails,Model,Parameter Passing,我有一个具有两列的用户模型,并尝试创建一个方法,该方法接受用户名参数并返回具有给定参数的所有用户: def find_user_byname(username) @user = User.all(username) end 但是,这将返回一个参数错误: ArgumentError: wrong number of arguments (1 for 0) Model.all应该返回all,对吗?为什么会给出错误?错误在all方法上。它不需要争论。您可以这样做: @user = User.f
def find_user_byname(username)
@user = User.all(username)
end
但是,这将返回一个参数错误:
ArgumentError: wrong number of arguments (1 for 0)
Model.all应该返回all,对吗?为什么会给出错误?错误在
all
方法上。它不需要争论。您可以这样做:
@user = User.find_by(username: username)
假设由参数username
表示的属性也称为username
或者,如果希望所有用户都使用该用户名(如果可以有多个用户名),则可以使用:
@user = User.where(username: username)
find_by
只返回一条(第一条)匹配记录,其中
返回所有匹配记录
另外,我应该指出,如果您的模型有一个名为username
的属性,Rails将自动为您提供以下方法:
User.find_by_username
与find_by类似,它只返回具有匹配用户名的第一条记录 错误在
all
方法上。它不需要争论。您可以这样做:
@user = User.find_by(username: username)
假设由参数username
表示的属性也称为username
或者,如果希望所有用户都使用该用户名(如果可以有多个用户名),则可以使用:
@user = User.where(username: username)
find_by
只返回一条(第一条)匹配记录,其中
返回所有匹配记录
另外,我应该指出,如果您的模型有一个名为username
的属性,Rails将自动为您提供以下方法:
User.find_by_username
与find_by类似,它只返回具有匹配用户名的第一条记录 啊,哈利路亚。非常感谢你!当然不过,我注意到你还没有接受答案。这个问题还有什么需要回答的吗?啊,哈利路亚。非常感谢你!当然不过,我注意到你还没有接受答案。这个问题还有什么需要回答的吗?