如何扩展这个Ruby ActiveRecord模型?

时间:2010-09-22 04:50:01

标签: ruby-on-rails ruby database-design activerecord

我正在创建这个小节目调度程序。

我有表格显示,title:stringdescription:text。我想在节目中添加日期和时间(每个节目可以有多天,每天都有自己的OWN时间)。我该怎么做呢?

我在考虑制作一张时间表。使用列(show_iddaytime)。然后,在列出节目时,您将搜索符合show_id的时间并按日排序。

欢迎任何想法,建议等。

3 个答案:

答案 0 :(得分:2)

您可以使用以下命令创建Show模型:

script/generate model Show title:string description:text

然后你要创建ShowTime模型:

script/generate model ShowTime date:datetime time:datetime

然后,在您的show.rb模型文件中,您将定义has_many这样的关系:

 has_many :showtimes

在您的ShowTime模型文件中,您可以定义belongs_to这样的关系:

 belongs_to :show

答案 1 :(得分:1)

对我而言,最简单的解决方案是使用单个DateTime对象,因为您可以从Time对象获取日期和时间。


script/generate model ShowTime time:datetime
script/generate model Show title:string description:text showtime:references

然后输入属于Jacob所引用的belongs_to / many_associations。我认为为showtime设置一个单独的模型会更好,并允许更多的灵活性。您还应该查看Time对象上的strftime方法,以根据自己的喜好格式化时间。

答案 2 :(得分:-1)

我认为您的想法非常合理(特别是对于没有编程经验的人)。如果您对实现此操作的“Rails方式”感兴趣,我建议您在the Rails guide中查看has_many关系。 (我总体上推荐这本指南,因为它对Rails有很大帮助)