Gegeben die folgende Methode. Wie kann man diesen Code am sichersten machen, wenn das Ergebnis comment.story.teams.first
nil
sein könnte?Rails: Keine Überprüfung einer Methodenkette Best Practices
Ich habe comment.story.teams.first.try(:users)
versucht, aber dann, dass die Dose auf der Straße tritt und die Zuordnung users -= [@current_user]
wirft einen undefined method
Fehler.
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
Gibt es ein besseres Muster, das ich hier verwenden könnte?
Falls Sie noch nicht darüber nachgedacht haben (nicht versuchen, Ihre Intelligenz zu beleidigen): '' '(users || []) - = [@current_user]' '' oder früher '' 'users = comment .story.teams.first.try (: Benutzer) || [] '' '' – laertiades
Nie beleidigt. Nur verwirrt über Best Practices beim Wechsel zwischen den Sprachen, wie ich es oft tue. Das funktioniert gut. Danke. – Meltemi