在我的messages_controller中,我有以下私有方法:
def find_message_or_404(slug)
message = user.messages.find_by_slug(slug)
if message.nil?
raise Error404
end
message
end
我发现它不优雅而且不是很鲁莽。有没有办法改善它?
答案 0 :(得分:3)
如果您只想缩短代码以使其更像Ruby,那么:
def find_message_or_404(slug)
user.messages.find_by_slug(slug) || raise Error404
end
非零find_by_slug
将返回消息,否则它将分支到raise
语句。
答案 1 :(得分:2)
我个人认为你所拥有的东西没有任何问题(明智的编码风格),但也许你更喜欢这样:
def find_message_or_404(slug)
user.messages.find_by_slug(slug) or raise Error404
end