I would prefer to use each_with_index:

@records.each_with_index do |r, i|
  "first record: #{r.name}" if i == 0
  "just another record: #{r.name}"
end

On Apr 19, 5:27 pm, Ryan Waldron <r...@erebor.com> wrote:
> It might be instructive to look at the code for the cycle method.  It
> actually creates an object and calls its to_s method each time you call
> 'cycle'.
>
> You could do a similar thing.  Create a small class with a 'to_s' method
> that returns something the first time, but nothing thereafter.
>
> class Once
>   def initialize(first_value)
>     @value = first_value
>   end
>
>   def reset
>     @value = ''
>   end
>
>   def to_s
>     value = @value
>     reset
>     return value
>   end
> end
>
> Stick that in lib/ or include it some other way. Then you can call cycle,
> but pass your object as a single argument to cycle (cycle doesn't require
> actually more than one param, though you could pass your object as both
> params, or just pass it as the first param and '' as the second):
>
> <% label_once = Once.new('_bar') %>
>
>   <tr class='foo<%= cycle(label_once) %>'>
>
> You'll get
>
>   <tr class='foo_bar'>
>   ...
>   <tr class='foo'>
>   ...
>   <tr class='foo'>
>
> Might be a bit overkill, but kind of fun. :)
>
> On Sun, Apr 19, 2009 at 5:52 PM, Joshua Muheim <
>
> rails-mailing-l...@andreas-s.net> wrote:
>
> > > Just write one:
>
> > > in a helper:
> > >    def only_first_time(what)
> > >      first_time = @previous_what.nil?
> > >     �...@previous_what ||= what
> > >      what if first_time
> > >    end
>
> > Thanks, but that's not very versatile. I could only use it once. AFAIK I
> > can use cycle() wherever I want, so I'd like the helper to be somehow
> > dependant from where it has been called. Is this possible?
>
> > Thanks
> > --
> > Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to