Error mysql al usar: Time.now.at_beginning_of_month()

Hola que tal.

estoy haciendo una consulta find() desde una vista en mi applicacion, mi
idea es que unos registros se muestren si es que son mayores a la fecha
al
inicio del mes actual.

entonces estoy haciendo lo siguiente :

    <% for curso in Curso.find(:all, :conditions=>{:sub_categoria_id 

=>
sub.id}) %>
<% for calendario in
Calendario.find(:all,:conditions=>[“curso_id
= ?,fecha_inicio >= ?”,curso.id,Time.now.at_beginning_of_month()]) %>


<%= curso.nombre_curso %>
<%= calendario.duracion %>
<%= calendario.fecha_inicio %>
    </tr><% end %><% end %>

mi error es el siguiente :

Mysql::Error: Operand should contain 1 column(s): SELECT * FROM
calendarios WHERE (curso_id = 5,fecha_inicio >= ‘2007-10-01 00:00:00’)

Cuando hago el Find sin la fecha , me funciona bien, entonces el
problema
esta en el sql cuando se compara fecha_inicio con el
Time.now.at_beginning_of_month()

Cual puede ser el error???

Saludos Cordiales

Atte.
Miguel Michelson Martinez

Miguel M. wrote:

Calendario.find(:all,:conditions=>[“curso_id
= ?,fecha_inicio >= ?”,curso.id,Time.now.at_beginning_of_month()])
mi error es el siguiente :

Mysql::Error: Operand should contain 1 column(s): SELECT * FROM
calendarios WHERE (curso_id = 5,fecha_inicio >= ‘2007-10-01 00:00:00’)

En lugar de la coma debes utilizar el operador AND :

Calendario.find(:all,:conditions=>[“curso_id = ? AND fecha_inicio >=
?”,curso.id,Time.now.at_beginning_of_month()])

Espero te sirva.

Saludos.

Jaime Mora R.

Muchas Gracias Jaime, eso era exactamente!!

Saludos a toda la comunidad.