2010-12-05 18 views
0

私はRuby on Rails 3 Webアプリケーションを開発中で、2つのモデルを関連付ける方法がわかりません。Rails:2つの緩やかに関連するモデル間の関係

私たちの組織では、営業担当者が予定に出ています。予定が成功した場合は、注文が作成されます(それに関連する注文アイテムがありますが、それは別の日です)。この予定が成功しなかった場合は、売り切れとして表示されます。推測すると、注文は作成されません。

一方、販売が予定なしで行われることがあります。例えば、顧客は店舗に電話して何かを注文することができる。この場合、予約なしで注文を行うことができます。

注文と予定の間に関係がない場合は簡単ですが、エンドユーザーにとって使いやすいものでなければなりません。たとえば、予定が注文を生成したが、後で購入者がキャンセルすると、それらは予約が販売のキャンセルとしてマークされ、システムは自動的に注文をキャンセルとして設定します。同様に、彼らは注文を取り消すことを選択することができ、その後、システムによって自動的に取り消されなければならない。

デベロッパーはどのようにこのような処理を行いますか?予定: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

私は、質問を見ると、おそらく 'Appointment'はおそらく' has_one:order' – edgerunner

関連する問題