Yes, the above was a paste from my actual code. I added the parentheses, but there was no change. I added <%= last_artist %> and the output was just each artist again. So it seems that there is something wrong with teh portion that checks last_artist against pin.artist.
On Thu, Feb 19, 2015 at 9:13 AM, Colin Law <clan...@gmail.com> wrote: > On 19 February 2015 at 13:57, TTambe <tambe...@gmail.com> wrote: > > Someone suggested that I use local variables like this: > > > > <% @pin_albums.each do |pin| %> > > <%= (last_artist ||= nil) != pin.artist ? (last_artist = pin.artist) : > '' > > %> | > > <%= link_to pin.album, copy_pin_path(pin) %> > > <br/> > > <% end %> > > > > This gives me the same result as my original code: > > > > The Beatles | Let It Be > > The Beatles | Abbey Road > > Bob Dylan | Blood On The Tracks > > Bob Dylan | Highway 61 Revisited > > That looks as if it should work. Have you posted a direct copy/paste > from your code? > It assigns nil to last_artist unless last_artist already has a value, > then compares that to pin.artist. If not the same (so a new artist) > it assigns pin.artist to last_artist and displays that, if the the > same then it displays an empty string. > I wonder whether the precedence is wrong. If the above is a copy/paste > from your code then try > ((last_artist ||= nil) != pin.artist) ? (last_artist = pin.artist) : '' > Note the extra parentheses > > If that still doesn't work add a column on the end of the line showing > last_artist and see if it is tracking correctly. > > Colin > > > > > I'm not well versed on writing local variables in RoR, so I'm not sure > that > > I'm analyzing this correctly, but I don't see where last_artist is > > referencing the last iteration of the loop. I was thinking of trying to > use > > @pin_albums.each.with_index and then somehow comparing pin.artist to > > pin.artist - 1 > > > > Any thoughts from everyone would be appreciated. > > Thanks! > > > > On Tue, Feb 17, 2015 at 11:07 AM, Colin Law <clan...@gmail.com> wrote: > >> > >> On 17 February 2015 at 15:39, Tony Tambe <tambe...@gmail.com> wrote: > >> > In my music review app the Pins model has attributes of Pin.artist and > >> > Pin.album. I'm trying to list each artist reviewed on the site and > which > >> > albums of theirs have been reviewed. Below is what I have so far, but > I > >> > want > >> > to do it without repeating the artist name. > >> > > >> > Controller: > >> > > >> > @pin_albums = Pin.group(:album).order('artist') > >> > > >> > View: > >> > > >> > <% @pin_albums.each do |pin| %> > >> > <%= pin.artist %> | > >> > <%= link_to pin.album, copy_pin_path(pin) %> > >> > <br/> > >> > <% end %> > >> > > >> > This lists them like this: > >> > > >> > The Beatles | Let It Be The Beatles | Abbey Road Bob Dylan | Blood On > >> > The > >> > Tracks Bob Dylan | Highway 61 Revisited > >> > > >> > I want to list them like so: > >> > > >> > The Beatles | Let It Be > >> > | Abbey Road > >> > Bob Dylan | Blood On The Tracks > >> > | Highway 61 Revisited > >> > >> Leave the artist cell blank if the artist this time is the same as the > >> artist last time. > >> > >> 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 rubyonrails-talk+unsubscr...@googlegroups.com. > >> To post to this group, send email to rubyonrails-talk@googlegroups.com. > >> To view this discussion on the web visit > >> > https://groups.google.com/d/msgid/rubyonrails-talk/CAL%3D0gLsQnnC32Xru-A6P1_Tr6SeL2ex6a%3DNCUOxV9Yrjr5%2BtJQ%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 rubyonrails-talk+unsubscr...@googlegroups.com. > > To post to this group, send email to rubyonrails-talk@googlegroups.com. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/rubyonrails-talk/CAEdg5qTkpQs%3DsbVg6QgS8fRf8JOQop_ryMJA9wb6epQfKjf%3DMg%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 rubyonrails-talk+unsubscr...@googlegroups.com. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/rubyonrails-talk/CAL%3D0gLs2yYaqwmrCV4sYXYDnniaWK03cHBJGGhwimXava69Tzg%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 rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAEdg5qRM4%2Bboh1VXx10jDb-CGvXGpEqWytkkz2rHHkop1D%2BgLQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.