2013-05-05 4 views
14

新しいテーブルをレールに作成しようとしています。ルビーの新しいテーブルを作成する

rails generate model content content_id:auto-generated, law_id:integer, parent_id:integer, titel:string, text:string, content:string, url:string 
:(私はRubyのバージョン1.9とRailsのバージョン3.2.13 は、端末の新モデルを作る使用します。私は見つけると悲しげにしようと、すべての例では、私と一緒に動作しません... ので、それは私が今まで試したものです次のコードを生成し

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 
        ^

「を、」私はこれを取得エラーメッセージ:

:私はその一例でデシベルを熊手しようとした場合

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 tSYMBEG, expecting keyword_do or '{' or '(' 
     t.auto-generated :content_id 
         ^

私の研究では、テーブルを作成するための、このようにして私を得ました

どうすればいいですか?

答えて

17

auto-generatedは、サポートされている列型ではありません。

Active Recordは、次のデータベースの列タイプをサポートします。

: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

1

他の人の言うとおり、:auto-generatedはサポートされている列型ではありません。また、のシンボルではなく、の式であり、:auto - generatedとして解析されます。

0

コマンドラインでレールジェネレータを呼び出すときにはカンマを使用しないでください。これは、それらのカンマをマイグレーションに置きます。

関連する問題