Login
Newsletter
Werbung

So, 29. Juli 2007, 00:00

Einführung in Ruby on Rails

def vote
 @updates = 0
 if params
 params.each { |name, value|
 if name =~ /^vote(.*)/
 @updates += 1
 index = $1.to_i
 # Bisherige Stimmen ermitteln
 drink = Drink.find(index)
 voters = drink.voters.to_i
 points = drink.points.to_i
 # Aktualisieren
 drink.update_attribute(:voters, voters + 1)
 drink.update_attribute(:points,
 points + value.to_i)
 end
 }
 end
 @updates
end

params enthält die Formulardaten in Form eines assoziativen Arrays, das sich durch each mit zwei Parametern auslesen lässt. Beginnt ein Parameter mit vote, dann wird der Datensatz mit dem entsprechenden Index ausgelesen und aktualisiert.

Die View vote.rhtml ist dagegen sehr kurz - sie zeigt die vom Controller veröffentlichte Anzahl der Aktualisierungen an und produziert einen Link zurück zur Tabelle. Hier nur die wichtigen Zeilen; die HTML-Umrandung können Sie wie oben erzeugen.

<%= @updates %>
<%= @updates == 1 ? "Datensatz" : "Datensätze" %>
aktualisiert.<br />
<br />
<%= link_to("Tabelle", {:action => 'table'}) %>

Starten Sie nun wieder den Testserver und rufen Sie http://localhost:3000/drink/table auf. Die Tabelle erscheint, allerdings noch ohne Ergebnisse. Wenn Sie ein paarmal für eine oder mehrere Sorten abstimmen, werden die entsprechenden Werte angezeigt.

Fortsetzung

In der Fortsetzung im nächsten Teil geht es um das Deployment der Anwendung mit Apache, Ajax-Effekte und ein freundlicheres Styling mit CSS.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung