Consulta sobre find


#1

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

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

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


#2

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 :slight_smile:

Saludos


#3

El Lunes, 22 de Enero de 2007 14:59, Alexander G. escribió:

<% end %>

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