2010-12-05 8 views
0

Ruby on Rails 3 웹 응용 프로그램을 작성 중이며 두 모델을 연관시키는 방법을 모르겠습니다.레일 : 느슨하게 관련된 두 모델 간의 관계

우리 조직에서는 영업 담당자가 약속을 지킵니다. 약속이 성공적이면 주문을 만듭니다 (주문과 관련된 주문 항목이 있지만 다른 날이 있습니다).이 약속이 성공적이지 않으면 판매가없는 것으로 표시되고 가질 수 있습니다 짐작할 때, 어떤 순서도 만들어지지 않습니다.

한편 판매가 약속없이 진행되는 경우가 있습니다. 예를 들어, 고객이 상점에 전화하여 주문할 수 있습니다. 이 경우 예약 없이도 주문을 처리 할 수 ​​있습니다.

주문과 약속간에 아무런 관계가 없으면 최종 사용자는 쉽게 사용할 수 있어야합니다. 예를 들어, 약속이 주문을 생성하지만 나중에 구매자가 취소하는 경우 판매가 취소 된 것으로 약속을 표시하고 시스템은 자동으로 주문을 취소로 설정해야합니다. 마찬가지로, 그들은 주문을 취소하기로 결정할 수 있으며, 그러면 약속은 시스템에 의해 자동으로 취소되어야합니다.

개발자는 어떻게 이런 식으로 처리합니까? 약속은 have_many => 명령입니까? 명령 : belongs_to => 약속을합니까? 나는 무엇을 해야할지 모른다!

제발 도와주세요, 난 꽤 새로운 레일 개발자이고 내 머리 위로 느껴져! 고맙습니다! 이미 말했듯이

답변

1

, 다음은 잘 작동합니다 :

class Appointment < ActiveRecord::Base 
    has_many :orders 
end 

class Order < ActiveRecord::Base 
    belongs_to :appointment 
end 

belongs_to는 주문 테이블에 존재하는 필드 appointment_id이 필요합니다. 그러나 주문이 주문과 관련이없는 경우에는 appointment_id를 설정할 필요가 없습니다. 주어진 클래스에 대해 여러 개의 belongs_to 연관을 가질 수 있습니다.

+0

쪽지에서 질문을 살펴보면 '약속'이 아마도 'has_one : 주문'이라고 말하고 싶습니다. – edgerunner