Note to self: Rails 2.3-Helper Object#try

Oh je, beinahe 1 Jahr kein Update mehr auf diesem Blog. Aber das ist wohl eine andere Geschichte.

Hier ein kurzes Posting, hauptsächlich für mich selbt. Ich hatte diesen hilfreichen Helper schon einmal entdeckt, aber konnte mich dann nicht mehr an den Namen erinnern.

In Ruby ist es ja ein beliebtes Idiom mittels dem “||”-Operator nil-Werte abzufangen, z.B. @name || “default”.

Dieser Ausdruck liefernt entweder @name oder den String “default”, sollte @name == nil sein.

In Rails möchte man in Views häufig Model-Attribute ausgeben, welche ja als Methoden verfügbar sind. Kann das Model aber auch mal nil sein, kommt man mit dem ||-Idiom nicht weit. Rails 2.3 hat dazu Object#try als Monkey-Patch eingeführt:

@user.try(:name) || "(no name)"

hat den gleichen Effekt wie


@user ? @user.name || "(no name)" : "(no name)"

Sehr praktisch!

(Related: http://ozmm.org/posts/try.html)

Leave a Reply

CAPTCHA image