HTML aus einem Helper erzeugen

Hallo,

ich möchte mit einem Helper eine Schleife durchlaufen, die HTML Code bei
jeder Schleifenitteration erzeugt. Ich weiss nicht wie!

render :text => 'monat +

+ i + ’

funktioniert irgendwie nicht. Wie geht man vor?

Holger

Hi Holger,
die Frage musst Du nochmal etwas präziser stellen.

Du hast diverse Möglichkeiten, zB direkt im view

<%- (1..12).each do |i| -%> <%- end -%>
Monat <%= i.to_s %>

oder Du setzt das HTML in einem Helper zusammen, um es dann im view zB
über

<%= month_columns %>

auszugeben, wobei def month_columns im helper die td-fragmente liefert,

oder, oder, oder…

Gruß

Jan

Am 1. Mai 2008 12:01 schrieb Holger Hänisch [email protected]:


Posted via http://www.ruby-forum.com/.


rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug


Jan P.
Rechtsanwalt

Grünebergstraße 38
22763 Hamburg
Tel +49 (0)40 41265809 Fax +49 (0)40 380178-73022
Mobil +49 (0)171 3516667
http://www.inviado.de

Hallo Jan,

also etwas präziser:

Ich habe im View bis jetzt folgendes (nur zum Testen)

<%= monat(Time.now) %>

im Helper folgendes:

def monat(datum)
monat = datum.month
tag = letzter_tag(datum)
for i in 1…tag.day
render :text => ’

+ i + ’
end
end

def letzter_tag(datum)
datum = datum + 1.month
tage = datum.day
datum = datum - tage.days - 1
end

Was hier passiert ist: Das Datum wird untersucht. Der letzte Tag im
Monat wird ermittelt. Eine Tabelle soll aus den Tagen erzeugt werden.

Das ganze ist nur der Anfang und wird natürlich noch erweitert. Aber ich
habe schon allein das Prinzip noch nicht verstanden.

Holger

On Thu, May 01, 2008 at 12:59:19PM +0200, Holger Hänisch wrote:
(…)

im Helper folgendes:

def monat(datum)
monat = datum.month
tag = letzter_tag(datum)
for i in 1…tag.day
render :text => ’

+ i + ’
end
end

render just once! :wink:
evtl. so:

def monat(datum)
monat = datum.month
tag = letzter_tag(datum)
string = “”
for i in 1…tag.day
string << “

#{i}”
end
string
end

gruesse
rene

On Thu, May 01, 2008 at 01:11:15PM +0200, Jan P. wrote:

html # = return html falls Du von Java oä kommst…
end

okay jan war schneller -
evtl. noch ein hinweis die schreibweise #{x} rendert automatisch x.to_s,
kannste also .to_s sparen. (5 chars!)

:slight_smile:
rene

Hi Holger,
ok, also nur das Prinzip:

def monat(datum)
html = ‘’
monat = datum.month
tag = letzter_tag(datum)
for i in 1…tag.day
html += “#{i.to_s}”
end
html # = return html falls Du von Java oä kommst…
end

Besten Gruß

Jan

Am 1. Mai 2008 12:59 schrieb Holger Hänisch [email protected]:

Rene P. wrote:

On Thu, May 01, 2008 at 01:11:15PM +0200, Jan P. wrote:

html # = return html falls Du von Java o� kommst…
end

okay jan war schneller -
evtl. noch ein hinweis die schreibweise #{x} rendert automatisch x.to_s,
kannste also .to_s sparen. (5 chars!)

:slight_smile:
rene

Vielen Dank fuer die Hinweise. Ich habe es mit eurer Hilfe dann
hinbekommen!!

Holger