simply_helpful in Rails Edge

Oct 2007
19

0 Kommentar(e)

Eingetragen von Martin Maciaszek

Und noch eine Arbeitserleichterung in Rails Edge (und damit auch im kommenden Rails 2.0). Simply Helpful war bislang als Plugin für Rails 1.2.x verfügbar. In Verbindung mit REST sind Formulare jetzt noch einfacher zu schreiben. In Rails 1.2.x muß man noch folgendes schreiben, um ein Edit-Formular zu bekommen:

form_for :foo, @foo, :url => foo_path(@foo), :html => {:method => :put} do |f|
  ...
end

Das geht nun deutlich kürzer:

form_for @foo do |f|
  ...
end

Jepp, das ist alles. Simply Helpful erkennt automatisch, ob es sich bei @foo um ein neues ActiveRecord-Objekt handelt und baut automagisch einen Link zur create- bzw. update-Action.


Partials jetzt noch einfacher

Oct 2007
18

0 Kommentar(e)

Eingetragen von Martin Maciaszek

Und wo ich gerade bei Änderungen in Rails Edge bin. Eine weitere fingerschonene Änderung hat es in Rails geschafft. Mußte man bislang noch folgendes schreiben:

render :partial => "projects", :collection => @projects

genügt demnächst schon:

render :partial => @projects

FormHelper#label in Rails Edge

Oct 2007
18

0 Kommentar(e)

Eingetragen von Martin Maciaszek

Seit Changeset 7541 hat Rails Edge (und damit höchstwahrscheinlich auch das kommende Rails 2.0) einen neuen Helper, um Labels für Formularfelder zu erzeugen. Hier ist ein kleines Beispiel, um zu sehen, wie der Helper benutzt werden kann.

<% form_for(:foo, @foo, :url => foo_path(@foo)) do |f| -%>
  <%= f.label :bar, 'Bar' %>
  <%= f.text_field :bar %>
<% end -%>

Läßt man den zweiten Parameter hinter label weg, so wird die Beschriftung aus dem Attributnamen mit humanize abgeleitet.


Rails-Plugins mit Piston

Oct 2007
16

0 Kommentar(e)

Eingetragen von Martin Maciaszek

Ein Rails-Projekt ohne Plugins ist nahezu undenkbar. Plugins wie attachment_fu, restful_authentication und will_paginate sind fast immer Pflicht. Mit script/plugin, was bei jedem Rails-Projekt beiliegt, können diese Plugins installiert werden.

Das script/plugin-Skript funktioniert recht gut, hat jedoch ein paar Schönheitsfehler. Standardmäßig kopiert es einfach alle Dateien in ein Verzeichnis in vendor/plugins/mein_plugin. Ein update des Plugins ist so jedoch unmöglich. Es kann nur erneut installiert werden. Dabei werden etwaige eigene Änderungen am Plugin gnadenlos überschrieben.

Um diesem Problem entgegenzuwirken, kann script/plugin mit der Option -x aufgerufen werden. Das Plugin wird dann mit Subversion als External ausgecheckt. Dies löst das Problem mit den Updates. Sollte jedoch das externe Repository nicht erreichbar sein, so wird Subversion Fehlermeldungen beim update und commit ausspucken. Grafische Frontends für Subversion kommen mit diesen Fehlermeldungen selten klar. Auch wer von der Kommandozeile arbeitet, wird auf die Dauer von diesen Fehlermeldungen genervt sein.

An dieser Stelle kommt Piston ins Spiel. Es checkt die Plugins aus ohne externals, vermerkt jedoch für sich, woher das Plugin stammt. Damit ist ein Update jederzeit möglich. Und da sich Subversion nicht um externals kümmern muß, ist es auch kein Problem, wenn das externe Repository nicht erreichbar ist.

Piston wird wie jedes andere Gem einfach mit gem install piston -y installiert. Damit ist es nun einsatzbereit. Benötige ich nun will_paginate in meinem Projekt, so installiere ich es einfach mit folgendem Befehl:

piston import svn://errtheblog.com/svn/plugins/will_paginate \
   vendor/plugins/will_paginate

Um dieses Plugin auf den neuesten Stand zu bringen benutze ich dann diesen Befehl:

piston update vendor/plugins/will_paginate

Weitere Optionen finden sich auf der Piston-Website.