À partir de la ActiveRecord::Base de la documentation:
créer(attributs = nil) {|objet| ...}
Crée un objet (ou plusieurs objets) et l'enregistre dans la base de données, si les validations de passe. L'objet résultant est retourné si l'objet a été enregistré avec succès dans la base de données ou non.
nouveau(attributs = nil) {|self si block_given?| ...}
De nouveaux objets peuvent être instanciés que soit vide (pass, pas de construction de paramètre) ou de pré-série avec des attributs mais pas encore enregistré (passer d'un hachage avec clé de noms correspondant à l'associé de la table des noms de colonne). Dans les deux cas, l'attribut valide les touches sont déterminés par les noms de colonne de la table associée - par conséquent, vous ne pouvez pas avoir des attributs qui ne font pas partie des colonnes de la table.
Donc, create
instancie un nouvel objet, le valide, puis l'enregistre dans la base de données. Et new
seulement crée l'objet local, mais ne pas tenter de la valider ou de l'enregistrer dans la bd.