bonjour
j’ai un problème avec une condition de date
rails dernière version stable
plugin redbox et globalte
j’ai une vue avec un date select
form_remote_tag( :update => “comptajour”,
:url => { :action => ‘rechdate’}) %
Recherche : %= date_select 'compta', 'date' , :order =>
[:day, :month, :year],
:start_year=>2006,
:use_month_numbers => true,
:end_year
=>
Date.today.year %
qui renvoie vers une action rechdate
def rechdate
@recherche = params[:date]
@comptas = Compta.find( :all,
:conditions => [“date = ?”, @recherche ],
:order => ‘date desc , methode desc’
)
render(:partial => “comptalist”)
end
et mon partiel qui en plus me renvoie la valeur de @recherche
et bien si je change la date dans le champ date_select, ou même si je
laisse
tl quel, mon mon param[:date] est vide (nil)…
Cela me semble tout bête mais si qqu’un a une idée.
merci
NG
Bonjour,
Essaie d’y accéder avec params[:compta] plutôt que params[:date].
Par contre je ne sais pas si la hash que tu récupères est utilisable
directement dans ta requête.
Si ce n’est pas le cas il y a toujours le moyen d’instancier une date de
cette manière :
ma_date = Date.civil(
params[:compta][‘date(1i)’].to_i,
params[:compta][‘date(2i)’].to_i,
params[:compta][‘date(3i)’].to_i
)
Stéphane.
Le 12/11/07, Nicolas G [email protected] a écrit :
Le 12/11/07, Stéphane Thibaudeau [email protected] a écrit
:
Bonjour,
Essaie d’y accéder avec params[:compta] plutôt que params[:date].
déjà essayé mais
Mysql::Error: Operand should contain 1 column(s): SELECT * FROM comptas
WHERE (date = ‘— \n- date(1i)\n- "2007"\n’,‘— \n- date(2i)\n-
"11"\n’,‘— \n- date(3i)\n- "12"\n’) ORDER BY date desc , methode
desc
Par contre je ne sais pas si la hash que tu récupères est utilisable
Stéphane.
visiblement tu as raison, il faut en effet passer par là 
étrange qu’il n’y ai pas qque chose de plus évident non ?
je ne connaissais pas la méthode civil
merci
NG
Bonsoir,
Ben, c’est pas si étrange car si tu regardes le params envoyé par rails,
il
crée un hash pour séparer chaques composante de la date.
Si tu travailles avec la date en entier, cela t’oblige à la recomposer
pour
l’utiliser dans une requête SQL mais si tu veux seulement utiliser une
des
composantes ou les méthodes de la classe Date, style ago, c’est très
pratique.
Au début, j’étais septique comme toi, mais tu verras qu’à l’usage, on y
trouve largement son compte quand ça devient compliqué !
Bon courage,
Thomas GALIBERT.
Le 12/11/07, Nicolas G [email protected] a écrit :
Nicolas :
j’ai une vue avec un date select
form_remote_tag( :update => “comptajour”,
:url => { :action => ‘rechdate’}) %
Recherche : %= date_select ‘compta’, ‘date’ , :order =>
[:day, :month, :year],
[…]
et bien si je change la date dans le champ date_select, ou même si
je laisse tl quel, mon mon param[:date] est vide (nil)…
Cela me semble tout bête mais si qqu’un a une idée.
Utilise ici select_date plutôt que date_select.
– Jean-François.
–
Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)
Le 12/11/07, Thomas GALIBERT [email protected] a écrit :
Bonsoir,
Ben, c’est pas si étrange car si tu regardes le params envoyé par rails,
il crée un hash pour séparer chaques composante de la date.
Si tu travailles avec la date en entier, cela t’oblige à la recomposer
pour
l’utiliser dans une requête SQL mais si tu veux seulement utiliser une des
composantes ou les méthodes de la classe Date, style ago, c’est très
pratique.
Au début, j’étais septique comme toi, mais tu verras qu’à l’usage, on y
trouve largement son compte quand ça devient compliqué !
en effet en y réfléchissant pour le calcul des différences de date de
durée
cela semble plus logique…
Bon courage,
merci, plus que du courage, du temps 
Thomas GALIBERT.
NG
PS septique/sceptique (septique c’est quand y’a plein de microbes)
Utilise ici select_date plutôt que date_select.
Et bien la différence m’est assez vague … j’ai en effet essayé le
select_date, mais sans grand succès (problème d’attribut) et l’api est
assez absconse sur la différence entre les deux.
je ne connaissais pas la méthode civil
Date.new, c’est plus court à écrire.
c’est sûr 
Nicolas et Stéphane :
ma_date = Date.civil(
params[:compta][‘date(1i)’].to_i,
params[:compta][‘date(2i)’].to_i,
params[:compta][‘date(3i)’].to_i
)
visiblement tu as raison, il faut en effet passer par là 
étrange qu’il n’y ai pas qque chose de plus évident non ?
je ne connaissais pas la méthode civil
Date.new, c’est plus court à écrire.
– Jean-François.
–
Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)