2017-05-17 9 views
0

ユースケース:日(すなわち香港の旅程:1日目、2日目、3日目など)とそれぞれ:1日はあります説明の多くを持っている旅程:旅程モデル

ユーザーが作成することができます

私は日程、日、説明にどのように対処すべきかわかりません。

旅程と曜日と説明の別々のモデルを作成する必要がありますか?

**itinerary.rb** 
has_many :days 

**day.rb** 
has_one :description 

しかし、これはあまり混乱しないでしょうか?あなたがそれをやるより簡単な方法はありますか?

「Day」というモデルを作成し、次のようにする必要がありますか?そのような場合、どのように私は(2日目、3日目など、1日目の順番でIE)の日のインスタンスを注文します

+0

'description'テーブルに多くの属性がない場合、' day'テーブルだけが行います。 'day'テーブルに' description'テーブル属性を追加するだけです。 – Emu

+0

1日目、2日目、3日目などの順序で「日数」を並べ替える方法 – RailsNewbie

+0

'created_at'日付に基づいて並べ替えることができます。最初に作成された日が第1日であるため、第2の作成日は2日目など – Emu

答えて

0
  • あなたはdescriptionテーブルの上に多くの属性を持っていない場合は、それでdayテーブルだけが行います。 descriptionテーブル属性dayテーブルを追加するだけです。

  • dayモデルに追加フィールドを追加します。整数型のようにday_no。ユーザーはその日の曜日を指定します。その新しい属性に基づいて日を並べ替えることができます。

0

2つのモデルItineraryDayを作成します。次のように関連付けを追加します。

class Itinerary < ActiveRecord::Base 
    has_many :days 
end 

class Day < ActiveRecord::Base 
    belongs_to :itinerary 
end 

デイモデルは属性が必要 - 今、あなたは呼び出すことにより、特定の旅程の順番のすべての日を取得することができます:itinerary_id:description

を - @itinerary.days

を親切にシーケンスことに注意してください日を作成した順序によって異なります。無作為に日を作成する場合は、追加の列:day_indexを追加して、日を表すための整数を格納できます。この場合
、シーケンシャルコールがあるべき - @itinerary.days.order(:day_index)

・ホープこれはあなたの疑問をクリア! :)

関連する問題