3
내가 레일에 루비의 기초를 배우고

나는 몇 가지 간단한 쿼리를 만들고 싶어하지만 난 의심이 : 나는에 비계를 사용합니다, 지금Ruby On Rails 비계는 외래 키를 포함해야합니까?

class Client < ActiveRecord::Base 
    has_one :address 
    has_many :orders 
    has_and_belongs_to_many :roles 
end 

class Address < ActiveRecord::Base 
    belongs_to :client 
end 

class Order < ActiveRecord::Base 
    belongs_to :client, counter_cache: true 
end 

class Role < ActiveRecord::Base 
    has_and_belongs_to_many :clients 
end 

:

나는이 모델이됩니다 모든 일을 생성하고, 내가 직접처럼 scaffols에서 외래 키를 넣어 경우 알고 싶어

레일 발판 ADRESS 거리를 생성합니다 문자열 번호 : 정수 CLIENT_ID : 정수를

그런 연관을 만들고 내 db를 마이그레이션 할 때 암시 적일까요?

제가 가장 좋은 방법으로 자신을 설명하는지는 잘 모릅니다.

감사합니다.

+1

예, 먼저 당신이 아이의 발판을 생성하고 위의 – Veeru

+1

이 g 발판 클라이언트 클라이언트 _ 레일처럼 외국 지적 할 수 그 후 상위 모델의 발판 생성해야합니다 : 문자열을 는 g 발판 주소 CLIENT_ID 레일 : 정수 주소 1 : 문자열 이 같은를 내가가 발생하는 경우 – Veeru

+0

은 그래서 : ** ADRESS 거리 : 문자열 번호 : 정수 ** 은 내가 쓴 그렇다하더라도 경우, 모든 클라이언트에 연결되지 않습니다 : ** belongs_to : 클라이언트 **의 클라이언트의 모델 맞습니까? –

답변

7

예, 참고가 없습니다.

가정 :

rails generate scaffold Address street:string number:integer client_id:integer:index 

또는

rails generate scaffold Address street:string number:integer client:references 
0

하나, 레일에서 4는이 방법 belongs_to 사용할 수 있습니다 : 당신은 어느 client_id 또는 클라이언트 모델에 대한 참조, 예를 전달해야 애플리케이션에 사용자 모델이 있다는 것입니다.

rails g scaffold comment belongs_to:user text:string 

당신의 마이그레이션 폴더에 클래스를 생성

class CreateComments < ActiveRecord::Migration 
    def change 
    create_table :comments do |t| 
     t.string :text 
     t.belongs_to :user, index: true, foreign_key: true 
     t.timestamps null: false 
    end 
    end 
end 

당신이 다음 rake db:migrate을 실행해야한다,이 명령은 는 데이터베이스 테이블에 인덱스 컬럼으로 속성을 USER_ID 만듭니다.