Object#try takes a block. It'll probably take care of most simple cases for you:
<% account.owner.try do |user| %> <!-- This is shown only if account.owner is not nil? --> <% end %> On Fri, Jan 25, 2013 at 1:17 PM, Ngan <nganp...@gmail.com> wrote: > I originally brought this up in: > https://github.com/rails/rails/issues/9067 > > Rails paved the way for Object#tap and Object#try...I'd like to propose > Object#tap_if and its counterpart,Object#tap_unless. > > I've been following 37signals conventions of tapping variables in the > views: > > <% account.owner.tap do |user| %> > ... > <% end %> > > But, I find myself having to do this a lot... > > <% account.owner.tap do |user| %> > <% if user %> > ... > <% end %> > <% end %> > > It would be great if we could do... > > <% account.owner.tap_if(:present?) do |user| %> > ... > <% end %> > > <% account.users.tap_if(:any?) do |user| %> > ... > <% end %> > > The block would only yield if the method evals to true. > Carlos mentioned that you can add an "if account.owner.present?" at the > end... > But there are times when the account.owner (or something else) call is > expensive and you don't want to call it twice. > > Any feedback would be much appreciated. Thanks! > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To post to this group, send email to rubyonrails-core@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-core+unsubscr...@googlegroups.com. > Visit this group at http://groups.google.com/group/rubyonrails-core?hl=en. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-core+unsubscr...@googlegroups.com. Visit this group at http://groups.google.com/group/rubyonrails-core?hl=en. For more options, visit https://groups.google.com/groups/opt_out.