Keine 4. Auflage von RWDMROR
February 22nd, 2010
Aufgrund einiger Nachfragen, hier kurz eine "Pressemitteilung" :)
Zum Buch "Rapid Web Development mit Ruby on Rails" wird es erstmal keine 4. Auflage geben.
Ralf und ich sind vor allem aus Zeitgründen privater und beruflicher Art nicht in der Lage, eine neue Auflage zu Rails 3 zu schreiben. Kurzfristig gab es die Idee, dass uns Phillip Oertel unterstützt, aber der hat dann ebenfalls aus Zeitgründen passen müssen.
Die Entscheidung ist uns nicht leicht gefallen, aber vorerst geht es nicht anders.
Vielen Dank an aller Leser für das Lob und die Anregungen!
History der Rails-Console reaktiviert
November 19th, 2009
Irgendwann, vermutlich nach einem Update von Ruby und/oder Rails, stand die History meiner Rails Console nicht mehr zur Verfügung.
Nachdem ich damit eine gewisse Zeit leben konnte, wollte ich heute dem Grund auf die Schliche kommen.
Nach einigem Probieren kam ich darauf, dass die Konsole und deren History unter ~/.irb_history schon funktioniert. Sie wird allerdings durch die Datei ~/.rdebug_hist erweitert.
Ein Durchlaufen der einzelnen Einträge durch "Pfeil-Taste hoch" lief erst durch die Einträge des Debuggers und fand dann irgendwann auch die Einträge aus ~/.irb_history. Man musste nur oft genug Tippen :).
Ein Löschen der Datei ~/.rdebug_hist führte dazu, dass die letzten Einträge in der Konsole beim nächsten Aufruf sofort zur Verfügung standen.
Die Datei ~/.rdebug_hist wird durch ruby-debug (genauer ruby-debug-0.10.3/cli/ruby-debug/interface.rb) eingelesen und geschrieben. Ich habe den Code noch nicht ganz durchschaut, aber die Datei wurde trotz des Einsatzes des Debuggers bisher nicht wieder erzeugt. Sicherheitshalber habe ich die Datei selbst schreibgeschützt angelegt, um eine erneute Erzeugung zu vermeiden.
touch ~/.rdebug_hist
chmod 400 ~/.rdebug_hist
Logging in der Rails-Console reaktiviert
Darüber hinaus habe ich das Aktivieren und Deaktivieren der Logausgaben
in der Rails-Konsole wieder hinbekommen. Meine ~/.irbrc sieht wie folgt aus:
1 2 3 4 5 Wirble.init 6 Wirble.colorize 7 8 9 system(%{ri }) 10 end 11 12 if ENV.include?('RAILS_ENV') 13 14 15 ActiveRecord::Base.connection.select_all(query) 16 end 17 18 19 set_logger Logger.new(STDOUT) 20 end 21 22 23 set_logger @logger 24 end 25 26 27 ActiveRecord::Base.connection.instance_variable_get("@logger") 28 end 29 30 31 @logger ||= get_logger 32 ActiveRecord::Base.connection.instance_variable_set("@logger", logger) 33 end 34 35 end 36
Update: Ich nutze Rails 2.3.4 und Ruby ruby 1.8.7
Rails-Konferenz 2009 Review
September 13th, 2009
Ist schon wieder zwei Wochen her, dass wir die 4. Rails-Konferenz hinter uns gebracht haben.
Diesmal fand die Konferenz im ACHAT Plaza Frankfurt/Offenbach statt. Das Hotel machte einen durchweg guten Eindruck, liegt allerdings verkehrstechnisch nicht besonders günstig. Auch der Vorraum für Pausen ist für 100+ Personen einfach viel zu klein. Die Zimmer waren sauber und geräumig und das Essen gut. Für 2010 werden wir uns aber trotzdem nach einer Alternative umschauen. Wer Tipps hat, bitte melden.
Den Gesprächen und Feedback-Bögen zur Folge, ist die Konferenz auch diese Jahr wieder sehr gut angekommen. Die Workshops, Vorträge und das Socializing zwischendurch ergaben ein rundes Bild.
Nur der Ort des Vorabend-Events kam nicht so gut an, weil die Teilnehmer vom Hotel in Offenbach erst in die Innenstadt von Frankfurt mussten. Das ACHAT-Hotel selbst wäre ein guter Ort gewesen, kostete aber zu viel Geld. Die Lounge im Fleming's Club kam bei den Anwesenden dann aber gut an. Danke auf diesem Wege nochmals an XING für das Sponsoring und die Vorträge!
Danke auch an alle Sponsoren, Speaker und Teilnehmer!!!
Dem Feedback nach zu urteilen, werden auch 2010 wieder genügend Teilnehmer kommen. In diesem Sinne: bis 2010!.
Ticket-Rabatt auf rubyonrails.de
August 10th, 2009
Na, dann mal schnell zuschlagen :)
Vielen Dank an Kaan für die Unterstützung!
Rails Plugin amount_field
August 7th, 2009
Da ich nichts adäquates an Gems oder Plugins gefunden habe, habe ich mich selbst daran gemacht. Und das war anfangs gar nicht so einfach :)
Es ist die Eingabe (die Übertragung aus dem Formular an die Rails-Anwendung) und die korrekt formatierte Ausgabe (Anzeige im View/Formular) zu betrachten.
Eingabe
Vorweg folgende Definition:- Formatvalidierung: z.B. ist "1.234,56" ein gültiges Format?
- Wertvalidierung: z.B. ist 1.234,56 > 1250 ?
- Damit sichergestellt werden kann, dass der eingegebene Wert wirklich ein gültiges Format hat (z.B. 1.234,56), muss zunächst eine Formatvalidierung erfolgen und danach die (sichere) Konvertierung in eine Zahl 1234.56. Im Anschluss kann optional die Wertvalidierung erfolgen.
Ohne die Formatvalidierung würde Rails aus 1.234,56 den Wert 1.23 machen, ohne dass der Anwender das gegebenenfalls merkt. Und das ist schlecht.
-
Die Formatierung (Ein- und Ausgabe) hat eigentlich nichts mit dem Attribut oder dem ActiveRecord-Modell zu tun. Es handelt sich ja mehr um eine bestimmte Repräsentation eines Betrags und dafür ist das Modell nicht zuständig. Zur formatierten Anzeige werden u.a. die View-Helper von Rails genutzt.
Die Konvertierung von "1.234,56" in 1234.56 kann aber nicht auf Controller/View-Ebene erfolgen, da die Validierung der Attribute in ActiveRecord geschieht. Und die Formatvalidierung ist eben eine solche Validierung. Daher bleibt doch nur das Modell.
- Die Zuweisung als Ruby-Zahl an den Setter (an das Attribute) muss weiterhin wie gewohnt möglich sein:
p = Product.new p.price = '12.345,67' # schlecht p.price = 12345.67 # ok - Der Getter des Attributs muss den Wert als (Ruby-)Zahl liefern, damit Berechnungen weiterhin wie gewohnt möglich sind:
p = Product.new(:price => 1.23) p.price # => 1.23 damit Rechnen möglich tax = p.price * 19.0 / 100.0 - Eine clientseitige Formatvalidierung (und Formatierung) durch JavaScript ist hilfreich, verhindet aber nicht unbedingt die Übertragung falsch formatierter Beträge und daher ist eine serverseitige Formatvalidierung immer notwendig.
- Die Formatierung eines Betrags besteht immer aus den drei Werten:
- Separator (Tausendseparator)
- Delimiter (Trennung Ganzzahl und Nachkommastellen)
- Precision (Anzahl der Nachkommastellen)
Die drei Werte bilden die Formatkonfiguration:
deutsch:{ :precision => 2, :delimiter => '.', :separator => ',' }
amerikanisch:{ :precision => 2, :delimiter => ',', :separator => '.' } - Fehlermeldungen bei einen falschen Format sollten internationalisierbar sein
- Hinweis: Active Record speichert den übergebenen Wert “1.234,56” in dem Attribute "price". Erst beim Lesen des Wertes wird dieser konvertiert zurückgeliefert. Daher liefert "price_before_type_cast" den Wert “1.234,56” und "price" den Wert 1.234 zurück. Die Wertvalidierung erfolgt bei Active Record auf Basis von XXX_before_type_cast.
Als Lösung definiere ich einen eigenen View-Helper "amount_field" als Ersatz für "text_field". Das HTML sieht wie folgt aus:
<input name="product[amount_field_price]" class=" amount_field"... />
Der eingegebene Wert (z.B. "1.234,56") wird dadurch über den Parameter amount_field_price und nicht (wie normalerweise) über den Parameter price übertragen.
Zusätzlich existiert das Validierungsmakro "validates_amount_format_of", dass für jedes angegebene Attribut eine spezielle Setter-Methode (z.B. amount_field_price=(value) definiert, die den Parameter amount_field_price annimmt und Werte im Format "1.234,56" akzeptiert.
validates_amount_format_of :price
end
Nach der Validierung und Konvertierung (z.B. "1.234,56" in 1234.56) wird der Wert an das Originalattribut "price" zugewiesen und kann von weiteren Validierungsmakro geprüft werden (z.B: validates_numericality_of :price).
Ausgabe
Damit die Ausgabe des Wertes 1234.56 formatiert erfolgt (z.B. "1.234,56"), verwendet der View-Helper amount_field intern den View-Helper number_with_precision mit der global definierten Formatkonfiguration. Im Fehlerfall wird der Wert nicht formatiert, sondern wie eingegeben angezeigt.
Das Gem (oder Plugin) inklusive Dokumentation ist unter GitHub zu finden.
Freue mich über Feedback, Fragen oder Fehlermeldungen.
Anmeldung zur Rails-Konferenz.de 2009 online!
July 22nd, 2009
Programm Rails-Konferenz 2009 online
July 20th, 2009
Shoulda Macros werden nicht gefunden
July 16th, 2009
undefined method ‘should_validate_presence_of’ for PoliceTest:Class
Es handelt sich dabei um Rails 2.3 und Shoulda 2.10.2. Der Quellcode dazu sieht wie folgt aus:
Nachdem ich zwei weitere require-Einträge vorgenommen habe, ging es:
Zum Zeitpunkt des Blog-Eintrags werden auf der Shoulda-Seite noch Macros wie should_require_attributes
oder should_require_unique_attributes aufgeführt, die es in der Version 2.10.2 (oder früher) nicht mehr gibt.
Artikel zum Gem- und Plugin-Erstellung
April 16th, 2009
In der am Montag, dem 20. April erscheinenden dritten Ausgabe des RailsWay-Magazins habe ich wieder einen Artikel beigesteuert. Diesmal geht es um das Thema, wie man ein eigenes Ruby-Gem und Rails-Plugin erstellt.
Weitere spannende Artikel und ein Interview mit David Heinemeier Hansson sind enthalten.
Viel Spaß mit dem neuen Magazin!
Rails-Konferenz.de@twitter
April 2nd, 2009
Heiko Webers - Sicherheitsaspekte von Rails-Anwendungen
March 16th, 2009
Download: MP3 (50:12 Min, 16.7 MB)
Podcast-Abo: RSS mit Enclosures
Weitere Links:
Ruby on Rails Security Project
PDF: Ruby on Rails Security
Ruby On Rails Security Guide
Session auf der Rails-Konferenz 2008
Cross Site Request forgery (csrf)
Newsletter zur Rails-Sicherheit
Newsletter Sicherheitslücken in Ruby
bauland42
Heiko Webers ist Gründer und Geschäftsführer von bauland42. Das Softwarebüro bauland42 erstellt sichere, effiziente und einfach zu bedienende Webanwendungen mit Ruby on Rails. Außerdem bietet bauland42 Sicherheitsberatung, Code-Audits und Training für Ruby on Rails. bauland42 informiert mit dem Ruby On Rails Security Project regelmäßig über neue Entwicklungen im Bereich der Sicherheit von Rails.
Der Podcast ist etwas länger geworden, als geplant, aber das Thema Sicherheits ist nicht mal eben abzuhandeln. Und wir haben sicher noch lange nicht alle Punkte angesprochen :). An der Qualität der Aufnahmen muss ich noch etwas pfeilen, aber besser so, als gar nicht.
Danke an Heiko!
Rails-Konferenz 2009
March 15th, 2009
Gute Neuigkeiten für alle Rails-Interessierten:
Die Rails-Konferenz findet auch dieses Jahr wieder statt!
Termin & Ort
1. und 2. September 2009
ACHAT Plaza Frankfurt/Offenbach
Ernst-Griesheimer-Platz 7
D - 63071 Offenbach
ACHAT Plaza Frankfurt/Offenbach
Auch dieses Jahr freuen wir uns wieder auf spannende Vorträge, interessante Diskussionen, den Erfahrungsaustausch in gemütlicher Atmosphäre und vieles mehr!
Seit dabei, es lohnt sich!Alle Informationen unter Rails-Konferenz.de!
Maik Schmidt - Enterprise Ruby and Rails
December 23rd, 2008
Download: MP3 (32:35 Min, 20 MB)
Podcast-Abo: RSS mit Enclosures
Weitere Links:
Maik Schmidt
Enterprise Recipes with Ruby and Rails
Enterprise Integration with Ruby
Messaging in Ruby (Video von Maik Schmidt auf der
Rails-Konferenz 2008)
Review Markus Jais
Maik Schmidt hat sein neues Buch "Enterprise Recipes with Ruby and Rails" veröffentlicht. Eine willkommene Gelegenheit einen Podcast zu probieren und mit Maik ein paar Fragen zum Thema und zum Buch zu klären.
Deutschsprachige Podcasts zum Thema Ruby und Rails sind noch nicht so verbreitet. Es gibt den einen oder anderen Versuch, so auch hier. Neben dem gerade gestarteten Rails-Magazin RailsWay stellt es ein weiteres Medium dar, um Ruby und Rails im deutschsprachigen Raum weiter zu verbreiten.
Maik ist wie immer souverän, ich noch etwas unkonzentriert. Wird sicher im Laufe der Zeit besser. Insgesamt aber auf jeden Fall hörenswert.
Danke an Maik!
Weltweit erstes Rails-Magazin
December 11th, 2008
Am 17. Dezember 2008 kommt das weltweit erste Rails-Magazin auf den Markt. Es wird vom Software & Support Verlag herausgegeben und beglückt erstmal nur den deutschsprachigen Markt. Um das Magazin vor Weihnachten zu veröffentlichen, haben einige Autoren ein paar Überstunden gemacht (unter anderem ich :)). Wir hoffen mit dem Magazin für eine weitere Verbreitung von Ruby on Rails in Deutschland bzw. im deutschsprachigen Raum zu sorgen.
Ein Dankeschön an den Initiator und Chefredakteur Michael Johann und den Software & Support Verlag.
Weitere Links:
Pressemitteilung
weblog.rubyonrails.org
Enterprise Recipes with Ruby and Rails
December 9th, 2008
Wieder ein gelungenes Buch, wie ich finde. Habe daher gleich eine Rezension bei Amazon geschrieben.
Fazit: Das Buch sollte in keiner Ruby/Rails-Bibliothek fehlen.
