https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/5884- rendering-a-partial-with-an-array-as-its-object-should-not-render-as- collection
El Jueves, 28 de Octubre de 2010 16:30:58 Prem Sichanugrist escribió: > Can you create a ticket and assign to me. I'll have a look on it. > > Thank you :) > > On 28 ต.ค. 2553, at 21:08, Antonio Tapiador del Dujo wrote: > > I suffered this. I was very annoyed because Rails was rendering nothing. > > Then I realized I was passing an empty array and I remembered this > > issue! > > > > +1 > > > > El Sábado, 23 de Octubre de 2010 23:05:06 Eugene M. Magdel escribió: > >> Had the same problem! Thanks for reporting! > >> > >> On Sep 30, 1:28 pm, James MacAulay <[email protected]> wrote: > >>> This code does not work the same way as it did in 2.x: > >>> > >>> render :partial => "things", :object => ['foo', 'bar', 'baz'] > >>> > >>> In 2.x, the "things" partial would be rendered once with a local > >>> variable called "things" storing the given array. > >>> > >>> In 3.0.0 (and edge), the Action View assumes that you really > >>> meant :collection => ['foo', 'bar', 'baz'], so it iterates through the > >>> array and renders the partial once with each element. It will do this > >>> for any object which responds to to_ary. > >>> > >>> I really think this is a case of Rails being too clever for its own > >>> good. The difference in behaviour between the :object and :collection > >>> options is large enough that this makes for a big break in > >>> expectations. If someone wants the :collection behaviour, they should > >>> use :collection. > >>> > >>> (FWIW, an easy workaround is to pass the array into :locals, which > >>> people should probably be doing for arrays 99% of the time anyway, but > >>> silently assuming they meant :collection is not the way to encourage > >>> that behaviour.) > >>> > >>> The relevant change to the code is more than a year old now (commit > >>> d0301e1) but I couldn't find any discussion about the change and the > >>> tests don't seem to assert anything about it either way. If it's > >>> really the behaviour we want, then it should be tested and documented. > >>> I can make a patch in either case. > >>> > >>> -James -- 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]. For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.
