2013-05-05 2 views
14

레일에 새 테이블을 만들려고합니다.ruby ​​on rails에 새 테이블을 만듭니다.

rails generate model content content_id:auto-generated, law_id:integer, parent_id:integer, titel:string, text:string, content:string, url:string 
: (I 루비 버전 1.9 및 레일 버전 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 

내가 DB를 긁어하려고하면 : 나는 다음과 같은 오류 메시지가 얻을 마이그레이션 : 내가 제거하면

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

을 ","나는이를 얻을 수 오류 메시지 :

: 나는이 오류 메시지를받을 것을 예로 DB를 긁어하려고하면

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은 지원되는 열 유형이 아닙니다.

액티브 레코드는 다음과 같은 데이터베이스 열 유형을 지원합니다

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

자세한 정보 http://guides.rubyonrails.org/migrations.html#supported-types의를

레일, 자동에 대한 열 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

레일스 제네레이터에 대한 명령 줄 호출에 쉼표를 넣지 마십시오. 이는 마이그레이션에 쉼표를 넣는 것입니다.

관련 문제