gpt4 book ai didi

ruby-on-rails - 如何将异常处理添加到我的 before_action

转载 作者:数据小太阳 更新时间:2023-10-29 07:55:47 24 4
gpt4 key购买 nike

我有一个像这样的 before_action 方法:

def current_user
@current_user ||= User.find(:id => session[:id])
end

然后我调用这样的方法:

def get_food user
food = Food.find(:id => user.id)
end

这很好,但我想添加异常处理。

当用户为 nil 我想使用 @current_user:

def get_food user
food = Food.find(if user is nil i want to use @current_user.id)
end

当然可以这样写:

def get_food user
if user.nil?
food = Food.find(@current_user.id)
else
food = Food.find(user.id)
end

或者,这是最好的方法吗?

def get_food user
food = Food.find(user == nil? @current_user.id : user.id)
end

我很好奇是否有比在参数中添加简单的 if 语句更好的方法?

最佳答案

我能想到的最短的一行是这样的:

Food.find((user || current_user).id)
Food.find(user.try(:id) || current_user.id)
Food.find(user ? user.id : current_user.id)

不确定这是否真的提高了可读性。我更喜欢这样的东西:

def get_food(user)
user ||= current_user
Food.find(user.id)
end

关于ruby-on-rails - 如何将异常处理添加到我的 before_action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26886361/

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