给出以下方法。如果comment.story.teams.first
的结果可能是nil
,那么如何最好地使此代码安全?
我已经尝试了comment.story.teams.first.try(:users)
,但随后又开始行动,而作业users -= [@current_user]
会引发undefined method
错误。
def recipients
if comment.commentable_type == "Story"
users = comment.story.teams.first.users
else
users = comment.other_commenters + [comment.commentable_user]
end
users -= [@current_user]
users.uniq
end
我可以在这里使用更好的模式吗?
答案 0 :(得分:0)
除非声明,否则请将您需要的任何内容包装在ruby中。
unless comment.story.teams.first.nil?
##Execute code in here
end
希望有所帮助。可能更容易重构方法中的一些语句。 '除非'如果不是'只是ruby语法。