By admin | Published:
27/03/2009
Wie viele von euch da draußen benutze ich auch activescaffold. Auf mein Windows Desktop Rechner (Rails 2.2.2) hatte ich keine Probleme. Auf meinen Server (auch Rails 2.2.2) tauche merkwürdigerweise, wenn ich ein neues Element erzeugen wollte, folgender Fehler auf:
‘Request Failed (code 500, Internal Error)’ — ActionView::TemplateError (undefined method `find_template’…
Ich habe hier eine Lösung für das Problem gefunden:
It is need comment method template_exists? from
active_scaffold/lib/extensions/action_view_rendering.rb
By admin | Published:
18/03/2009
Für ein Projekt, vielleicht werde ich es in einen späteren Artikel vorstellen, brauchte ich einen Kalender, bei dem man einen Tag auswählen kann. Zu dem ausgewählten Tag sollten dann bestimmte Informationen angezeigt werden. Natürlich hätte man das Ganze auch mit einer simplen textbox oder die ruby on rails implementierte Lösung date_select, lösen können. Ich denke, dass mir die Meisten zu stimmen würden, dass ein Kalender mit Wochentagen und Monaten, in dem man einfach per Mausklick einen Tag auswählen kann, schöner ist.
Ich habe diverse Plugins mir angeschaut und das einzige, welches meinen Anspruch gerecht geworden ist, war calendardateselect!
Installation:
- Installiere das calendar_date_select gem.
sudo gem install calendar_date_select
- Füge die gem Abhängigkeit zu dem ROR-Projekt hinzu (environment.rb).
config.gem “calendar_date_select”
- Starte das Projekt neu.
- Füge folgende Zeile an den Anfang des Views hinzu.
<%= calendar_date_select_includes "red"
# or "blue", or "silver", or nil for the default! %>
Einen Kalender im View anzeigen:
Füge folgende Zeile an die Stelle an die der Kalender angezeigt werden soll hinzu:
<%= calendar_date_select_tag
"name_of_variable_of_the_selected_date",
default_date, :embedded => true %>
Screenshot des Kalenders mit der Einstellung
<%= calendar_date_select_includes “silver”%>

Erklärungen:
name_variable_of_the_selected_date in dieser Variable wird der ausgewählte Tag gespeichert. Sie können diese bennen wie Sie möchten.
default_date dieser Tag wird beim Aufruf angezeigt. Sie können Ihn auf nil setzten, dann wird der heutige Tag angezeigt.
Auswahl eines Tages verfolgen:
Hierzu benutze ich einen Observer, damit ich mitbekomme, wenn ein ander Tag ausgewählt wird.
<%= observe_field("name_of_variable_of_the_selected_date",
:frequency => 0.25,
:update => "update_this_part_in_the_view",
:url => { :action => :action_which_should_called_by_change },
:with => "'name_of_variable_of_the_selected_date='+value") %>
By admin | Published:
11/03/2009
Mit UNION kann man normalerweise nur zwei Tabellen mit gleicher Form vereinigen. Gleiche Form meint in diesem Fall, dass die beiden Tabellen die gleiche Spaltenanzahl und -namen bzw. zumindest gleiche -typen haben. Mit einem kleinen Trick ist es trotzdem möglich zwei Tabellen zu vereinigen, die ungleiche Spaltenanzahl haben. Hierzu fügt man eine NULL-Spalte mit
zur Tabelle hinzu.
Hier ein kleines Beispiel:
Tabelle t1
a | kosten
——————-
haus | 30
land | 80
wald | 20
Tabelle t2
a | b | kosten
———————–
haus|raum | 10
haus|flur | 5
wald|baum| 3
Um die beiden Tabellen zu vereinigen genügt folgender SQL-Befehl:
SELECT a, NULL AS b, kosten FROM t1
UNION
SELECT a,b,kosten FROM t2
By admin | Published:
09/03/2009
Folgender Code zeigt ein Bild anstatt eines Textes an:
<%= link_to image_tag("image.png", :border=>0),
:action => 'edit', :id => user %>
By admin | Published:
09/03/2009
rand(x):
rand(x) #liefert eine Zufallszahl (float) < x
array.rand:
Anmerkung: array.rand ist eine Ruby on Rails-Erweiterung.
array = ["a","b","c","d","e"]
random_letter = array.rand #random_letter beinhaltet
#einen Buchstaben (a-e)
By admin | Published:
08/03/2009
Unsere erste Rubyprogrammieraufgabe befasst sich mit dem finden von Nullstellen einer Funktion.
Gegeben ist eine Funktion (z.B. f(x) = 5x^3 + 9x^2 + 2x + 3) und ein Intervall [a,b]. Es sollen alle Nullstellen nährungsweise im Intervall gefunden werden. Man erinnere sich, dass eine Nullstelle zwischen zwei Stellen a und b liegt, wenn f(a)*f(b) < 0 ist.
Viel Spaß beim Lösen.
By admin | Published:
08/03/2009
Manchmal ist es notwendig den ersten Tag einer Kalenderwoche zu identifizieren. Ruby liefert schon einige Hilfsmittel hierfür, aber es gibt keine direkte Methode dafür. Hier ist eine Möglichkeit zur Berechnung des ersten Tages (Montag) einer Kalenderwoche:
def week_to_date(week, year)
date = Date.parse("01-01-"+year)
if date.cwday == 1
x = 0;
else
x = 8-date.cwday
end
date+x+(7*(week-1))
end