About

This page contains a single entry from the blog posted on January 4, 2008 3:25 AM.

The previous post in this blog was Benutzerauthentifizierung und-Autorisierung Teil 1.

The next post in this blog is Desktop-Icons die Zweite + Navigation.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.31

« Benutzerauthentifizierung und-Autorisierung Teil 1 | Main | Desktop-Icons die Zweite + Navigation »

Auf zwei Schienen fährt man besser...

...so dachte ich mir, und stand vor der Entscheidung, ob ich nun den gleichen kapitalen Fehler begehen sollte, den ich schon während der Bachelorarbeit (nur damals mit PHP) begangen hatte: Sollte ich mitten während der Entwicklung einer Software das Framework aktualisieren? Bislang arbeitete ich ja mit Rails 1.2.6 und war gut zufrieden, doch dann wurden ein paar neue Features (wie eingebautes HTTP Basic Auth... Blog-Artikel dazu ist in Arbeit!) doch zu verlockend.... und ich tat es.

Ja, ich fahre nun auch auf Rails 2.0.

Und der Umstieg gelang erstaunlich reibungslos! Meine Schritte waren:

  • Lesen des Artikels mit den Änderungen in Rails 2.0 aus dem InnoQ-Wiki
  • Deinstallieren von Rails 1.2.6 (über APT, denn ich hatte Rails nicht über Gem installiert)
  • Installieren von Rails 2.0 (über Gem, denn Rails 2.0. gab's noch nicht in meinen Apt-Repos)
  • Deployen einer plain vanilla Rails App irgendwohin
  • Kopieren von /config/{boot, environment, routes, initializers}, /script/* und /public/{dispatch.*, *.html} von vanilla nach Consolvix
  • Korrigieren der Pfadangaben zu den includes in dispatch.fcgi, denn sonst spackte Apache
  • Umbenennen aller Views mit u.g. Script, das vielleicht auch jemand anderem irgendwann eine Hilfe sein könnte.

#!/usr/bin/env ruby
# rename all *.rhtml files within the /app/views directory ro *.html.erb
# Author: WvK <[email protected]>
require 'fileutils'
Dir.new('.').each do |entry|
  if File.directory? entry and not entry[0..0] == '.'
    Dir.new("./#{entry}").each do |file|
      if /.*.rhtml/.match file
        old_path = "./#{entry}/#{file}"
        new_path = old_path.gsub /.rhtml/, '.html.erb'
        if FileUtils.mv old_path, new_path
          p "mv #{old_path} -> #{new_path}"
        else
          p "ERROR RENAMING #{old_path} to #{new_path}!"
        end
      end
    end
  end
end

Tja, und was soll ich sagen: läuft! Bis auf die Sache mit der pagination, derer ich mich noch nicht angenommen habe, läuft alles weitestgehend tadellos. Ich bin froh, dass ich ab und an mal die Deprecation-Warnungen in /log/development.log zu Herzen genommen hatte!

Nun wo der Schritt also vollbracht ist, ist Consolvix bestimmt besser als je zuvor den Änderungen, welche die Zukunft bescheren wird, gewachsen ;-)

TrackBack

TrackBack URL for this entry:
http://www.innoq.com/movabletype/mt-tb.cgi/2960

Comments (2)

Tim:

Für die Pagination kann ich dir will_paginate empfehlen. Ich finde das Plugin sehr gut und wird wohl auch sehr oft eingesetzt.

Grüße
Tim

Jo, davon hatte ich auch schon einiges gelesen -- mit gefällt aber persönlich mittlerweile das Paginator-GEM besser (jedenfalls war's mir auf den ersten Blick sympathischer ;-)), da es m.E. universeller einsetzbar ist. Zwar sind's immer 1-2 Zeilen mehr in der Paginator-Definition, aber dafür komme ich nun auch ohne die althergebrachte selbstgebaute paginate_collection aus.

Und Dann noch ein größeres Problem, was mich dann heute und gestern doch ein paar Stunden gekostet hat: composed_of funktioniert nicht mehr so wie in Rails 1.2.X. Bislang verwendete ich es eh nur beim User um das Kennwort in einem Credentials-Objekt zu kapseln, aber da da nun sowieso die gesamte Passwort-Setzen-Logik aus dem Benutzer heraus nach Auth::Authoriser (siehe demnächst fertiggestellter Eintrag) verschoben wurde, brauch ich das eigentlich auch nicht mehr...

Außerdem wäre im Nachhinein gesehen das Umbenennen der Views nach *.html.rb gar nicht nötig gewesen -- in einem anderen Projekt hatte ich das vergessen und das läuft auch noch immer ;-)

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)