Hallo, ich möchte mit einem Helper eine Schleife durchlaufen, die HTML Code bei jeder Schleifenitteration erzeugt. Ich weiss nicht wie! render :text => 'monat + <td> + i + </td>' funktioniert irgendwie nicht. Wie geht man vor? Holger
on 01.05.2008 12:01
on 01.05.2008 12:27
Hi Holger,
die Frage musst Du nochmal etwas präziser stellen.
Du hast diverse Möglichkeiten, zB direkt im view
<table>
<tr>
<%- (1..12).each do |i| -%>
<td>Monat <%= i.to_s %></td>
<%- end -%>
</tr>
</table>
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 <lists@ruby-forum.com>:
> --
> Posted via http://www.ruby-forum.com/.
>
> _______________________________________________
> rubyonrails-ug mailing list
> rubyonrails-ug@headflash.com
> http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
>
>
--
Jan Prill
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
on 01.05.2008 12:59
Hallo Jan,
also etwas präziser:
Ich habe im View bis jetzt folgendes (nur zum Testen)
<table>
<tr>
<%= monat(Time.now) %>
</tr>
</table>
im Helper folgendes:
def monat(datum)
monat = datum.month
tag = letzter_tag(datum)
for i in 1..tag.day
render :text => '<td> + i + </td>'
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 01.05.2008 13:11
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 += "<td>#{i.to_s}</td>"
end
html # = return html falls Du von Java oä kommst...
end
Besten Gruß
Jan
Am 1. Mai 2008 12:59 schrieb Holger Hänisch <lists@ruby-forum.com>:
on 01.05.2008 13:14
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 => '<td> + i + </td>' > end > end render just once! ;) evtl. so: def monat(datum) monat = datum.month tag = letzter_tag(datum) string = "" for i in 1..tag.day string << "<td>#{i}</td>" end string end gruesse rene
on 01.05.2008 13:28
On Thu, May 01, 2008 at 01:11:15PM +0200, Jan Prill 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!) :) rene
on 01.05.2008 22:51
Rene Paulokat wrote: > On Thu, May 01, 2008 at 01:11:15PM +0200, Jan Prill 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!) > > :) > rene Vielen Dank fuer die Hinweise. Ich habe es mit eurer Hilfe dann hinbekommen!! Holger