行程模型

时间:2017-05-17 07:24:51

标签: ruby-on-rails database-design

用例:

用户可以创建一个:行程有很多:天(即香港行程:第1天,第2天,第3天等),每个:天有:描述

我不确定如何处理行程,日,描述。

我应该为行程和日期和描述创建单独的模型吗?

**itinerary.rb** 
has_many :days

**day.rb** 
has_one :description

但这不会令人困惑吗?有没有更简单的方法呢?

或者我应该创建模型“Day”并将:description描述为属性?如果是这种情况,我将如何订购日实例(即按第1天,第2天,第3天等顺序)

2 个答案:

答案 0 :(得分:0)

  • 如果您在description表上没有多个属性,那么只有day表可以。只需将description表格属性添加到day表格。

  • day模型上添加额外字段。与整数类型 day_no 类似。用户将添加指定那里的日期编号。然后,您可以根据该新属性对日期进行排序。

答案 1 :(得分:0)

创建两个模型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)

希望这能够清除你的怀疑! :)