我有这样的before_action
方法:
def current_user
@current_user ||= User.find(:id => session[:id])
end
我调用这样的方法:
def get_food user
food = Food.find(:id => user.id)
end
很好,但是我想添加异常处理。
当用户为零时,我想使用@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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句