String in Datum wandeln

Hallo,

hab schon viel gesucht aber nicht das Richtige gefunden.

Ich uebergebe vom View an den Controller einen Wert der nichts mit einer
Datenbank oder Modell zu tun hat:

Parameters: {“authenticity_token”=>“xxx”, “action”=>“datum”,
“controller”=>“mitarbeiters”, “datum_jetzt”=>“2008-04-29”}

Ich moechte diesen String? datum_jetzt in ein Date Objekt umwandeln um
“+ 1.day” zu rechnen. Bekomme dann diese Fehlermeldung:

undefined method `+’ for :datum_jetzt:Symbol

Wie kann ich mit dem uebergebenen Wert vom View weiterarbeiten? Ist er
als String “:datum_jetzt” im Controller?

Danke fuer die Hilfe

Holger

Hi Holger

datum_jetzt.to_time + 1.day

gruß Malte

Holger Hänisch schrieb:

Malte B. wrote:

Hi Holger

datum_jetzt.to_time + 1.day

gruß Malte

Holger Hänisch schrieb:

Das ist es leider noch nicht. Selbe Fehlermeldung. Ich habe aber so den
Verdacht, dass ich was grundsaetzliches nicht verstanden habe. Der
Controller sieht so aus:

def datum

@datum = :datum_jetzt.to_time
@datum = @datum + 1.day
....

end

Holger

Hi Holger,
du musst das auf die variable anwenden und nicht auf ein Symbol!!!
Also so:

def datum
@datum = datum_jetzt.to_time + 1.day
end

Vorrausgesetzt die var heisst datum_jetzt!

Malte

Holger Hänisch schrieb:

Hi –

On Tue, 29 Apr 2008, Holger Hänisch wrote:

Das ist es leider noch nicht. Selbe Fehlermeldung. Ich habe aber so den
Verdacht, dass ich was grundsaetzliches nicht verstanden habe. Der
Controller sieht so aus:

def datum

@datum = :datum_jetzt.to_time
@datum = @datum + 1.day

end

@datum = Time.parse(params[:datum_jetzt]) + 1.day

Das Grundsaetzliche daran ist, dass die jeweilige Params dem
Controller innerhalb des Params-hash geliefert werden – bzw. dass man
den rohen String ein bisschen kochen muss :slight_smile:

David

Hi,
schau mal hier http://www.ruby-doc.org/core/classes/Date.html

parse(str=‘-4712-01-01’, comp=false, sg=ITALY)

Create a new Date object by parsing from a String, without specifying
the
format.

str is a String holding a date representation. comp specifies whether to
interpret 2-digit years as 19XX (>= 69) or 20XX (< 69); the default is
not to.
The method will attempt to parse a date from the String using various
heuristics; see _parse in date/format.rb for more details. If parsing
fails, an
ArgumentError will be raised.

The default str is ’-4712-01-01’; this is Julian Day Number day 0.

sg specifies the Day of Calendar Reform.

oder

strptime(str=‘-4712-01-01’, fmt=‘%F’, sg=ITALY)

Create a new Date object by parsing from a String according to a
specified
format.

str is a String holding a date representation. fmt is the format that
the date
is in. See date/format.rb for details on supported formats.

The default str is ’-4712-01-01’, and the default fmt is ’%F’, which
means
Year-Month-Day_of_Month. This gives Julian Day Number day 0.

sg specifies the Day of Calendar Reform.

An ArgumentError will be raised if str cannot be parsed.

Gruß

Zitat von Holger Hänisch [email protected]:

Hi –

On Tue, 29 Apr 2008, David A. Black wrote:

gruß Malte
@datum = @datum + 1.day

end

@datum = Time.parse(params[:datum_jetzt]) + 1.day

Hmmm… eigentlich ist:

params[:datum_jetzt].to_time + 1.day

deinem Original ein bisschen aehnlicher (und kurzer dazu :slight_smile:
Hauptsache ist der Params-hash.

David

David A. Black wrote:

Hi –

On Tue, 29 Apr 2008, David A. Black wrote:

gruß Malte
@datum = @datum + 1.day

end

@datum = Time.parse(params[:datum_jetzt]) + 1.day

Hmmm… eigentlich ist:

params[:datum_jetzt].to_time + 1.day

deinem Original ein bisschen aehnlicher (und kurzer dazu :slight_smile:
Hauptsache ist der Params-hash.

David

Danke David, das geht sehr gut. Jetzt habe ich auch wieder was
“Grundsaetzliches” verstanden.

Holger