Ruby on Rails는 field : type 모델을 생성합니다. field : type의 옵션은 무엇입니까?


308

새 모델을 생성하려고하는데 다른 모델의 ID를 참조하는 구문을 잊어 버렸습니다. 나는 그것을 직접 찾았지만 모든 Ruby on Rails 문서 링크 중에서 결정적인 소스를 찾는 방법을 알아 내지 못했습니다.

$ rails g model Item name:string description:text(그리고 여기 reference:product또는 또는 references:product). 그러나 더 나은 질문은 어디에 또는 어떻게 나는 미래에 쉽게 어리 석음 이런 종류의를 찾을 수 있습니까?

참고 :이 옵션 중 하나를 잘못 입력 하고 마이그레이션실행 하면 Ruby on Rails가 데이터베이스를 완전히 망칠 것 rake db:rollback입니다. 나는 단지 무언가를 이해하지 못한다고 확신하지만, 내가 할 때까지 ... 반환 된 "상세한"정보는 rails g model여전히 긁 히게합니다 ...


: uniq 및 : index 필드 옵션은 어떻습니까? "rails g model title body : text tracking_id : integer : uniq"와 같습니다. 그에 대한 문서를 찾을 수 없습니다. 더 없어요?
Kangur

11
rails generate model --help
데니스

1
버전 관리를 사용하면 생성 된 파일을 쉽게 롤백 할 수 있습니다. 그리고 문제가 데이터베이스에 있다면 ... 음, 항상 db : schema : load
Hector Ordonez

1
잘은 140K 회 이상 볼 됐어요 오늘의 같은 2백43명 것이 유용 :) 그것을 어떤 방법으로 바보 같은 질문하지 그래서 발견
BKSpurgeon

답변:


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

테이블 정의 섹션을 참조하십시오 .


13
흠 ...에 대한 언급 :reference이나 :references당신의 대답 이나 방법에 대한 설명은 제공된 링크에서 발전기에 전달 없습니다?!?
Meltemi

53
그것은 질문에 전혀 대답하지 않습니다.
MikeEL 2016 년

1
이것을 답변으로 선택했지만 : references 도 옵션입니다.
Meltemi

14
실제로 이러한 열 유형을 정의 하는 설명서가 있습니까? 예를 들어, 어떻게 string다를 text?
그랜트 버치 마이어

3
@Kangur uniqindex접미사 (및 모든 유형)는의 사용법에 설명되어 있습니다 rails generate model. rails g model사용법 문서를 보려면 실행 하십시오.
Dennis

188

다른 모델을 참조하는 모델을 작성하려면 Ruby on Rails 모델 생성기를 사용하십시오.

$ rails g model wheel car:references

app / models / wheel.rb 생성 합니다 :

class Wheel < ActiveRecord::Base
  belongs_to :car
end

그리고 다음 마이그레이션을 추가합니다.

class CreateWheels < ActiveRecord::Migration
  def self.up
    create_table :wheels do |t|
      t.references :car

      t.timestamps
    end
  end

  def self.down
    drop_table :wheels
  end
end

마이그레이션을 실행하면 db / schema.rb 에 다음이 나타납니다 .

$ rake db:migrate

create_table "wheels", :force => true do |t|
  t.integer  "car_id"
  t.datetime "created_at"
  t.datetime "updated_at"
end

문서에 대해서는, 레일 발전기의 시작 지점입니다 레일즈 명령 행에 가이드 : 루비 온 레일즈 로 포인트 API 문서 사용 가능한 필드 유형에 대한 자세한을 위해.


4
약간의 코멘트와 구식, 그러나 이것은이다 이 질문에 대한 대답. +1
omninonsense

7

$ rails g model Item name:string description:text product:references

나도 가이드가 사용하기 어렵다는 것을 알았습니다. 이해하기 쉽지만 찾고있는 것을 찾기가 어렵습니다.

또한 rails generate명령을 실행하는 임시 프로젝트가 있습니다. 그런 다음 작업을 마치면 실제 프로젝트에서 실행합니다.

위 코드에 대한 참조 : http://guides.rubyonrails.org/getting_started.html#associating-models


3

이 명령을 작성할 때 텍스트를 대문자로 사용하지 마십시오. 예를 들면 다음과 같습니다.

쓰십시오 :

rails g model product title:string description:text image_url:string price:decimal

쓰지 마:

rails g Model product title:string description:text image_url:string price:decimal

적어도 그것은 나에게 문제였다.


기다림?!? 뭐? 나는 항상 내 모델 이름을 대문자로 사용합니다! 어떤 "문제"가 보입니까?
Meltemi

2
모델의 이름이 아니라 '모델'이라는 이름에 대해 이야기하고 있습니다. 나는 다음과 같은 모델을 만들려 고했다 : rails g Model product title : string and got : Could not find generator Model. 그래서 나는 이것을 다음과 같이 시도했다 : rails g model product title : string 그리고 그것은 효과가 있었다.
Victor Augusto

1
아 그 b4를 발견하지 못했습니다. 좋은 팁!
Meltemi

2
(이것이 문제인 모델 이름이 아니며, model발전기를 언급 하는 단어 rails g model Product …입니다.)
Asherah


0

ROR에서는 다른 것을 참조하는 모델을 만드는 것이 매우 간단합니다.

레일 g 모델 품목 이름 : 문자열 설명 : 텍스트 제품 : 참조

이 코드는 Item 테이블에 'product_id'열을 추가합니다


0

모델을 생성 할 때 언급 할 수있는 많은 데이터 유형이 있으며 몇 가지 예는 다음과 같습니다.

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

통사론:

field_type:data_type

0

나는 같은 문제가 있었지만 내 코드는 조금 달랐다.

def new
 @project = Project.new
end

그리고 내 양식은 다음과 같습니다.

<%= form_for @project do |f| %>
     and so on....
<% end %>

그것은 완전히 정확했기 때문에 그것을 알아내는 방법을 몰랐습니다.

마지막으로

url: { projects: :create }

<%= form-for @project ...%>

나를 위해 일했다.


이것은 좋은 대답이 될 수 있지만 나는 그것이 필드 유형 (대한 인 영업 이익 관계가 있는지 확실하지 않다 :integer, :string등).
Meltemi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.