作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个像这样的 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/
我是一名优秀的程序员,十分优秀!