On 15 sep, 17:03, olfhen <[email protected]> wrote:
> ActionView::TemplateError (NaN) on line #29 of app/views/encounters/
> _table.html.erb:
>
> 26:
> 27: <td><% if b1.class.to_s.eql?('Planet') %> </
> td><td><% end %>
> 28:
> 29: <%= link_to b1.designation, b1 %>
> 30:
> 31: <% if b1.class.to_s.eql?('Tno') %></td><td> <%
> end %>
> 32: </td>
>
> /usr/pkg/lib/ruby/1.8/date.rb:422:in `floor'
> /usr/pkg/lib/ruby/1.8/date.rb:422:in `jd_to_civil'
> /usr/pkg/lib/ruby/1.8/date.rb:1066:in `__18057__'
> (eval):4:in `civil'
> /usr/pkg/lib/ruby/1.8/date.rb:1081:in `year'
> app/models/body.rb:40:in `designation'
> app/models/body.rb:39:in `each'
> app/models/body.rb:39:in `designation'
> app/views/encounters/_table.html.erb:29
> app/views/encounters/_table.html.erb:21:in `each'
> app/views/encounters/_table.html.erb:21
> app/views/encounters/index.html.erb:3
> app/controllers/encounters_controller.rb:11:in `index'
>
> Les Encounters sont très nombreux (+ de 7000), et le rendu plante
> parfois dès le début, parfois plutôt
> vers la fin (je le vois aux "select bodies.* ..." qui sont fait dans
> la base)
Bonjour,
Je pencherai pour un problème de ressources / performances pour
plusieurs raisons :
- l'aspect aléatoire
- le "ActionView::TemplateError"
- "self.attributes[...]" qui délègue en réalité à
"self.read_attribute(...)"
- le fait qu'il y ait un has_many de has_many de 7000
résultats... :-)
Deux petites questions :
- quelle version de Rails ?
- lors d'un rendu, tes logs sont-ils polués par N fois le même type
de requête ?
Même si je me trompe, les points suivants ne feront pas de mal :
- vérifier la relation entre Body et Encounters, on est bien au
final sur du 1-N ?
- vérifier que tes "include" sont bien en place, ex :
Body.all(:include => { :bodies_encounters => :encounters })
- éviter "self.attributes"
Note : "b1.class.to_s.eql?('Planet')" peut s'écrire "b1.instance_of?
(Planet)" (voir aussi la méthode "is_a?")
Bon courage !
--
Julien Vignolles
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse
[email protected]
-~----------~----~----~----~------~----~------~--~---