我是Ruby on Rails的新手,并坚持使用一些基本逻辑来让我的Rails check_in方法返回" true"或"假"。下面的代码和逻辑工作正常,但它很丑陋"并需要重构。
def check_in
@user = User.find_by_username(params[:username])
if @user && @user.authenticate(params[:token])
return true
else
return false
end
end
这是一种更优雅的方法吗?
答案 0 :(得分:1)
由于您的if
条件已经在评估您想要的布尔值,因此您只需返回它即可。此外,在Ruby中,您不需要显式使用return @user && @user.authenticate(params[:token])
,因为方法中最后一个语句的值将自动用作返回值。
def check_in
@user = User.find_by_username(params[:username])
@user && @user.authenticate(params[:token])
end