Forum: Rails-ES consulta sobre find

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Alexander G. (Guest)
on 2007-01-22 17:00
(Received via mailing list)
Buenas.. estoy intentando crearme una web blog para uso personal y pues
estoy en est apartado de mostrar los comentarios recientes.. y pues me
puse
un parcial con este código

<ul>
<%  for comment in Comment.find(:all, :order => 'created_at') %>
  <li><%= #{comment.author} %> en <%= link_to
"#{comment.article.title}",
:action => 'comment', :controller => 'blog', :id => comment %></li>
<% end %>
</ul>

y pues cabe señalar que me da error en <%= #{comment.author} %> como
diciendo que tiene una mala sintaxis.. pero cuando se lo quito si
funciona..
a pesar de ser de la misma sintaxis que el siguiente
#{comment.article.title
}
Ya he probado con <%=h comment.author %> y aun asi.. sale error..
No se si podrían orientarme en esto!.

saludos
Damian J. (Guest)
on 2007-01-22 17:07
(Received via mailing list)
On 1/22/07, Alexander G. <removed_email_address@domain.invalid> wrote:
> y pues cabe señalar que me da error en <%= #{comment.author} %> como
> diciendo que tiene una mala sintaxis.. pero cuando se lo quito si funciona..
> a pesar de ser de la misma sintaxis que el siguiente #{
> comment.article.title}
> Ya he probado con <%=h comment.author %> y aun asi.. sale error..
> No se si podrían orientarme en esto!.

El string interpolation es algo de Ruby.

"Hola, #{persona.nombre}"
--> "Hola, Alexander"

<% %> es la forma de incluir código Ruby dentro de los templates. El
signo igual envía un string a la salida.

La forma de combinar estas cosas sería:

<%= persona.nombre %>
<%= "Hola #{persona.nombre}" %>

Espero haber sido claro :)

Saludos
Imobach González Sosa (Guest)
on 2007-01-23 00:46
(Received via mailing list)
El Lunes, 22 de Enero de 2007 14:59, Alexander G. escribió:
> <% end %>
> </ul>

Bueno, ya que Damian te comentó cuál era el error, yo me permito el lujo
de
hacerte una pequeña observación. En general, creo que esta vista tiene
más
lógica de la cuenta. Creo que no deberías usar el método Comment#find en
la
vista; al fin y al cabo, estás decidiendo en la propia vista qué
comentarios
vas a mostrar (e incluso en qué orden).

Deberías hacer eso en el controlador y dejar que la vista, simplemente,
acceda
a lo que el controlador "haya decidido" que se va a mostrar. En el
controlador:

@comments = Comment.find(:all, :order => 'created_at')

Y en la vista:

<% for comment in @comments %>

Un saludo.

--
Imobach González Sosa
imobachgs en banot punto net
osoh en jabberes punto org
This topic is locked and can not be replied to.