2013-05-05 15 views
14

Provo a creare un nuovo tavolo in rotaie. Ogni esempio trovo e cerco purtroppo non funziona con me ... ed è quello che ho provato fino ad ora: (io uso di Ruby e Rails versione 1.9 Versione 3.2.13 fare un nuovo modello nel terminale:Crea nuovo tavolo in rubino su rotaie

rails generate model content content_id:auto-generated, law_id:integer, parent_id:integer, titel:string, text:string, content:string, url:string 

che ha generato seguente codice:

class CreateContents < ActiveRecord::Migration 
    def change 
    create_table :contents do |t| 
     t.auto-generated, :content_id 
     t.integer, :law_id 
     t.integer, :parent_id 
     t.string, :titel 
     t.string, :text 
     t.string, :content 
     t.string :url 

     t.timestamps 
    end 
    end 
end 

se cerco di rake db: migrate ottengo il seguente messaggio di errore:

syntax error, unexpected ',', expecting keyword_end 
     t.auto-generated, :content_id 
        ^

se mi tolgo la "" ottengo questo messaggio di errore:

syntax error, unexpected tSYMBEG, expecting keyword_do or '{' or '(' 
     t.auto-generated :content_id 
         ^

mia ricerca mi ha fatto anche a questo modo di creare una tabella:

class CreateContents < ActiveRecord::Migration 
    def change 
    create_table :contents do |t| 
     t.auto-generated "content_id" 
     t.integer "law_id" 
     t.integer "parent_id" 
     t.string "titel" 
     t.string "text" 
     t.string "content" 
     t.string "url" 

     t.timestamps 
    end 
    end 
end 

se provo a rastrellare il db con quell'esempio ricevo questo messaggio di errore:

syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '(' 
     t.auto-generated "content_id" 
         ^

Cosa faccio di sbagliato?

risposta

17

auto-generated non è un tipo di colonna supportato.

attivo record supporta i seguenti tipi di colonna database:

:binary 
:boolean 
:date 
:datetime 
:decimal 
:float 
:integer 
:primary_key 
:string 
:text 
:time 
:timestamp 

Maggiori informazioni in http://guides.rubyonrails.org/migrations.html#supported-types

Rails creerà automaticamente per voi la colonna id, quindi basta modificare la migrazione al seguente

class CreateContents < ActiveRecord::Migration 
    def change 
    create_table :contents do |t| 
     t.integer "law_id" 
     t.integer "parent_id" 
     t.string "titel" 
     t.string "text" 
     t.string "content" 
     t.string "url" 

     t.timestamps 
    end 
    end 
end 
+0

grazie, ha fatto il trucco! – Eumundi

1

Come altri dicono, :auto-generated non è un tipo di colonna supportato. Inoltre, non è un simbolo , è un'espressione ed è analizzato come :auto - generated.

0

Non inserire virgole nella chiamata dalla riga di comando al generatore di rotaie, ecco cosa inserisce queste virgole nella migrazione.

Problemi correlati