2013-05-05 72 views
14

我嘗試在軌中創建新表。每個例子中,我發現,並嘗試可悲的是不和我一起工作...... 所以這就是我試圖至今:(我使用Ruby版本1.9和Rails 3.2.13版本 使得在終端的新模式:在軌道上創建紅寶石新表

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

生成下面的代碼:

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 

,如果我嘗試耙分貝:遷移我收到以下錯誤信息:

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

如果我刪除了「」我得到這個錯誤信息:

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

我的研究讓我也來創建一個表是這樣的:

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 

,如果我嘗試耙與例子中,我得到這個錯誤信息的DB:

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

我該怎麼做?

回答

17

auto-generated不是支持的列類型。

活動記錄支持以下數據庫列類型:

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

更多信息在http://guides.rubyonrails.org/migrations.html#supported-types

Rails會自動爲你創建id列,因此只需編輯遷移到以下

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

謝謝,做到了! – Eumundi 2013-05-05 20:31:51

1

正如其他人所說,:auto-generated不是支持的列類型。此外,它不是符號,它是表達式並且它被解析爲:auto - generated

0

不要在您的命令行中調用逗號來生成Rails生成器,這就是將這些逗號放入您的遷移中的原因。