Thank you Godfrey! This does solve 99% of my cases! @Andrew Using if, the variable "users" is now available everywhere...I only want it available in my block.
On Friday, January 25, 2013 2:05:31 PM UTC-8, Godfrey Chan wrote: > > 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 <[email protected] <javascript:>>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 >> [email protected]<javascript:> >> . >> To unsubscribe from this group, send email to >> [email protected] <javascript:>. >> 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 [email protected]. To unsubscribe from this group, send email to [email protected]. Visit this group at http://groups.google.com/group/rubyonrails-core?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
