2013-09-04 3 views
3

Je suis Noob complet à PostgreSQL, Ruby on Rails ..rake db: migrate question postgresql

Je suis en train de suivre ce tutoriel (SANS RubyMine) http://www.codeproject.com/Articles/575551/User-Authentication-in-Ruby-on-Rails#InstallingRubyMine4

je en tant que telle cette migration (001_create_user_model.rb):

class CreateUserModel < ActiveRecord::Migration 
    def self.up 
    create_table :users do |t| 
     t.column :username, :string 
     t.column :email, :string 
     t.column :password_hash, :string 
     t.column :password_salt, :string 
    end 
    end 

    def self.down 
    drop_table :users 
    end 
end 

L'erreur que je reçois va comme ceci:

syntax error, unexpected ':', expecting ';' or '\n' 
     t.column...sers do |t| 

... 
C:131071:in 'disable_dll_transaction' 
Task:TOP => db:migrate 
+0

qui est une syntaxe vraiment vieux que vous avez là .... ne ressemble pas à un bon tutoriel. – sevenseacat

+0

hmm, j'ai aussi essayé la syntaxe ci-dessous. N'a pas fonctionné, même erreur. –

Répondre

1

Qu'en est-ce:

class CreateUserModel < ActiveRecord::Migration 
    def self.up 
    create_table :users do |t| 
     t.string :username, :null => false 
     t.string :email,:null => false 
     t.string :password_hash, :null => false 
     t.string :password_salt, :null => false 
     t.timestamps 
    end 
    end 

    def self.down 
    drop_table :users 
    end 
end 
+0

Quelle est la différence entre votre code et l'original? – hawk

+0

En plus des différences textuelles? Je viens de choisir une migration aléatoire et l'ai convertie à ce format. Vous ne savez pas si la migration d'Ahmad provient d'une ancienne version de Rails. –

+0

Différence non textuelle. Son code est toujours valide selon la documentation ActiveRecord :: Migration. Votre réponse devrait être 'Vous pouvez également utiliser les types de colonne comme appels de méthode, plutôt que d'appeler la méthode de colonne.' Mais cela ne résout pas le problème à partir du code. – hawk