Actually, on second thought, this would do exactly what you wanted, and
It's Just Ruby (tm):

<% account.users.any? && account.users.tap do |users| %>

  # ...
<% end %>




On Fri, Jan 25, 2013 at 2:09 PM, Ngan <[email protected]> wrote:

> 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]> wrote:
>>
>>> I originally brought this up in: https://github.com/rails/**
>>> rails/issues/9067 <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 rubyonra...@googlegroups.**com.
>>> To unsubscribe from this group, send email to rubyonrails-co...@**
>>> googlegroups.com.
>>>
>>> Visit this group at http://groups.google.com/**
>>> group/rubyonrails-core?hl=en<http://groups.google.com/group/rubyonrails-core?hl=en>
>>> .
>>> For more options, visit 
>>> https://groups.google.com/**groups/opt_out<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.
>
>
>

-- 
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.


Reply via email to