2010-02-03 6 views
5

Ich bin ein Anfänger in Rails. Ich benutze 2.3.X.Rails 3: Antizipieren der Migration für 2.3 Anfänger

Ich sah gerade Rails 3 ist vorveröffentlicht [edit: jetzt in Release Candidate!]. Ich werde höchstwahrscheinlich irgendwann dazu wechseln.

Was sind die üblichen Coding-Gewohnheiten in 2.3 sollte ich nicht nehmen, so dass der Schalter so glatt wie möglich ist?

Edit:

Ich habe meine Hausaufgaben gemacht und die Release Notes lesen. Aber sie sind bei weitem nicht klar für die wichtigsten Punkte, zum Beispiel:

1,5 Neue APIs

Sowohl die Router und Abfrage-Schnittstelle haben erhebliche gesehen, Veränderungen zu brechen. Es gibt eine Abwärtskompatibilitätsebene, die vorhanden ist und bis zur Version 3.1 unterstützt wird.

Dies ist nicht umfassend genug für einen Anfänger wie mich. Was wird brechen? Was kann ich bereits in 2.3.X tun, um spätere Probleme zu vermeiden?

+0

Haben Sie sich Jeremy McAnallys Posts angesehen, wie ich in meiner Antwort vorgeschlagen habe? Ich glaube nicht, dass Sie heute umfangreichere Anleitungen zum Upgrade auf Rails 3 erhalten. Nicht nur er führt Sie durch den gesamten Prozess, er hat sogar ein Juwel geschrieben, um den Übergang so schmerzlos wie möglich zu machen. –

+0

Ich verstehe, Mailand, aber das Thema ist nicht, wie zu migrieren, aber wie man so programmiert, dass ich nicht zu viele Probleme während der Migration habe. Ich verstehe den Wert Ihrer Antwort und des von Ihnen angegebenen Links. Ich habe zum Beispiel gelernt, dass ich das Routing einfach halten muss. Das ist schon eine wertvolle Information. Wenn das alles ist, was ich wissen muss, gut. Aber vielleicht gibt es andere Punkte. – glmxndr

Antwort

12

Mit Blick auf meine persönlichen Codierungsgewohnheiten (ich habe Rails seit 1.2.x verwendet), hier ist eine Liste von API-Änderungen, die Sie gemäß Rails 3 release notes antizipieren können.

find (: all)

die Verwendung von vermeiden:

Model.find(:all) 
Model.find(:first) 
Model.find(:last) 
zugunsten von:

Model.all 
Model.first 
Model.last 

Komplexe Abfragen

Vermeiden Sie die Zusammensetzung komp Lex-Abfragen zugunsten benannter Bereiche.

Antizipieren Arel

Rails 3 ein viel sauberer Ansatz bietet mit Active Bedingungen und Optionen für den Umgang. Sie können davon ausgehen, dass benutzerdefinierte benannte Bereiche erstellt werden.

class Model 
    named_scope :limit, lambda { |value| { :limit => value }} 
end 

# old way 
records = Model.all(:limit => 3) 

# new way 
records = Model.limit(3).all 

# you can also take advantage of lazy evaluation 
records = Model.limit(3) 
# then in your view 
records.each { ... } 

Wenn Sie auf Rails 3 aktualisieren, legen Sie einfach die benannte Bereichsdefinition ab.

Konstanten

Vermeiden Sie die Verwendung der folgenden Konstanten für die entsprechenden Rails.x Methoden, bereits in Rails 2.x.

  • RAILS_ROOT für Rails.root,
  • RAILS_ENV für Rails.env und
  • RAILS_DEFAULT_LOGGER für Rails.logger.

Unauffällig Javascript

Vermeiden Sie schwere JavaScript Helfer für unaufdringliche JavaScript.

Gem Abhängigkeiten

Halten Sie Ihre environment.rb so sauber wie möglich sein, um leichter die Migration zu Bündler zu machen. Sie können auch die Migration using Bundler today ohne Rails 3 antizipieren.

+0

Wirklich nette Antwort. +1 – glmxndr

0

Ich würde sagen, lesen Sie die rails release notes und sehen Sie selbst, was scheint, desto überraschender für Sie. Viele Dinge haben sich geändert, also ist das Lesen definitiv sehr wichtig.

3

Die release notes sind das Wichtigste, was man im Auge behalten sollte. Abgesehen davon hat Jeremy McAnally einige nette blog posts über die ganze Rails 3-Sache (und hat gerade eine gem freigegeben, um Ihnen bei der Migration zu helfen).