On Fri, Nov 6, 2015 at 10:03 AM Colin Law <[email protected]> wrote:

> On 5 November 2015 at 23:17, [email protected] <[email protected]>
> wrote:
> >
> > instead of this:
> >
> > def rqstate
> >    self.quote_request.status rescue "unsubmitted"
> > end
> >
> > I'm going for this, though maybe there is a good one liner I overlooked ?
> >
> > def rqstate
> >     ret_res = "unsubmitted"
> >     ret_res = quote_request.status || ret_res if quote_request
> >     ret_res
> >   end
>
> How about
> def rqstate
>   (quote_request && quote_request.status)  ?  quote_request.status  :
> "unsubmitted"
> end
>

If you're using Rails, another approach is to use try (
http://apidock.com/rails/Object/try).

def rqstate
  quote_request.try(:status) || "unsubmitted"
end

#try is very nice in this case, but avoid overdoing it. I have faced many
codebases with tons of try methods chained and then you lose code
readability.


> Not only a one liner but I think easier to understand.  Assuming I
> have got it right :)
>
> Colin
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/rubyonrails-talk/CAL%3D0gLtLLog2%2B3B0EV0gy4jwQLCt5FgUzBKZBRLRmmh95JEJQg%40mail.gmail.com
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/CACMkcE41cpqhNK-W9Y9XP2AummBfabOTQguTEtR2WmopR%2B3M%3Dg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to