Rails 3.0 's ActiveModel: How To Give Ruby-Klassen Einige ActiveRecord Magic

activemodel.gif Einer der größten Vorteile bringen Merb Entwickler Yehuda Katz an Bord, um on Rails 3.0 funktionieren hat seine unermüdliche Suche nach Extraktion aus allen magischen Rails 'Fähigkeiten von ihren monolithischen encasings und in einzelne, überschaubare Einheiten gewesen. Ein Beispiel dafür ist/ / yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord / "> ActiveModel, eine neue Bibliothek, dass das Modell Teile von ActiveRecord bietet aber ohne die Datenbank-Anforderungen.

Holen Sie sich wie Schienen-Model Behavior on Any Ruby-Klasse

In Extrahieren der Modell-Bauteile der ActiveRecord, ActiveModel macht es möglich, Modell-Add-ähnliches Verhalten keine Ruby-Klasse, ohne Rails oder Datenbanken erforderlich. In seinem neuesten Blog-Eintrag, ActiveModel: Make Any Ruby Object Feel Like ActiveRecord, Yehuda zeigt sich, wie Sie Rails GET-Modelle mit Validierungen, Serialisierung, Rückrufe, schmutzig-Tracking, Internationalisierung, Attribute,Beobachter und alle anderen Schienen Güte.

Beispiel-Code

Ich habe wichtigsten Jehuda ActiveModel Beispiel für die Verwendung auf einem nicht Rails-Klasse übernommen und erweitert sie mit einigen Code, der tatsächlich das Modell:

 require 'active_model "Klasse Persongehören ActiveModel:: Validierungenvalidates_presence_of: first_name,: last_nameattr_accessor: first_name,: last_namedef initialize (vorname, nachname)@ vorname @ nachname = vorname, nachnameEndeEndea = Person. neu ( "Fred", nil)ein. gültig? # => falseein. nachname = "Flintstone"ein. gültig? # => true

Installieren ActiveModel

Wenn Sie in ActiveModel interessiert und nicht so sehr in Rails 3.0, die Installation ist recht einfach (wenn auch nicht so einfach wie die Installation nur ein Schmuckstück nur noch):

  1. Gehen Sie zu oder machen Sie ein temporäres Verzeichnis
  2. git clone git://github.com/rails/rails.git
  3. cd rails
  4. rake gem
  5. gem install activesupport/pkg/activesupport-3.0.pre.gem
  6. gem install activemodel/pkg/activemodel-3.0.pre.gem

Ist dies alles getan, den Code obigen Beispiel funktioniert.

Nebenbei, wenn du Lust, ein mit dem vollen pre-release gehen (auch bekannt als "pre") Version von Rails 3.0, check-out Dr Nic's etwas veraltet, aber ansonsten nützlichen Leitfaden.

Hinterlasse eine Antwort

Du musst angemeldet sein, um einen Kommentar abzugeben.