2010-12-30 5 views
10

Ruby와 Rails를 처음 사용하고 Ruby 1.9.2에서 Rails 3를 실행 중입니다.Rails에 추가 매개 변수 전달 모델 생성?

모델을 만들고 싶습니다. 그래서 내가 원하는 테이블 정의를 얻기 위해 documentation을 보았습니다.하지만이 모델을 레일스에 전달하는 방법을 알고 싶습니다.

기본적으로 나는이 원하는 :

title :string, :null => false 
details :text, :limit => 30000, :null => false 

을하지만 난 단지 열 이름과 유형, 지정할 수 있습니다 : null 또는 : 제한.

나는 rails model generate Article (title:string, :null => false) (details:text, :limit=>30000, :null => false) 시도했지만 그것은 단지 (예기치 않은 토큰임을 알려줍니다

난 그냥 제목 모델을 생성 할 경우. 문자열 세부 정보 : 텍스트를 다음 article.rb 파일이 그것의 아마 때문에, 비어 어쨌든 DB에서 읽음

레일스의 모든 것이 단순하고 b) 매직으로되어 있기 때문에 나는 뭔가를 놓치고 모델을 생성하기 위해 해시 같은 것을 전달해야하는지 궁금하다. 또는 마이그레이션 .rb 파일을 직접 수동으로 편집해야합니까?

+1

를 실행할 때 제대로 실행할 수 있도록 심볼로"널 (null)"을 설정합니다. – Heikki

답변

8

예. 마이그레이션 파일을 수동으로 편집해야합니다. 발전기는 단지 출발점을 제공하고 모든 것을 수행하지는 않습니다.

어쨌든 마이그레이션 파일에서이 작업을 수행하는 것은 매우 쉽습니다.

create_table :articles do |t| 
    t.string :title, :null => false 
    t.text :details, :limit => 3000, :null => false 
end 
+1

이것은 나를 추적하는 데 영원히 필요했습니다. 필자는 레일즈 g 스캐 폴드에서 한계를 극복하는 방법을 모색 해왔다. 감사합니다! – Ryan

7

몇 가지 트릭을 시도 belongs_to와 인덱스

rails g model User username:string:index group:belongs_to 

을이 생성됩니다

class User < ActiveRecord::Base 
    belongs_to :group 
    attr_accessible :username 
end 
19

을 그 한계는 (지금) 명령 줄에 지정 될 수 있습니다 밝혀 지 :

rails generate model user pseudo:string{30} 

출처 :usage doc from Rails GitHub project

그러나 기본값을 설정하면 수동으로 마이그레이션을 편집해야합니다.

추가 마이그레이션 옵션은 the official Rails migrations guide을 참조하십시오.

+0

와우! 이 대답은 너무 옳습니다. 명령 줄에서 어떻게 문서를 보여줄 수 있습니까? 레일 모델 도움? – zx1986

+0

@ zx1986'bin/rails g model'이 트릭을해야합니다. –

1

레일 생성 모델"null".to_sym => false을 전달할 수 있습니다. 예를 들어
는 :

rails g model client 'ClientName, "null".to_sym => false:string{100}' 

이 당신은 수동으로 편집해야 db:migrate