2010-09-22 78 views
2

我正在创建这个小节目调度器的东西。我有表显示,title:stringdescription:text。我想在节目中添加日期和时间(每个节目可以有多天,每天有自己的时间)。我该如何去做这件事?我该如何扩展这个Ruby ActiveRecord模型?

我正在考虑制作一个时间表。与列(show_id,daytime)。然后在列出节目时,您搜索符合show_id的时间并按天排序。

欢迎任何想法,建议等。

回答

-1

我认为你的想法非常合理(特别是对于没有编程经验的人)。如果你对“Rails方式”的实现感兴趣,我会建议在the Rails guide中检查has_many关系。 (我建议一般本指南,因为它帮助了我很多使用Rails)

2

你会创建Show模型下面的命令:

script/generate model Show title:string description:text 

然后,你创建欣欣模型:

script/generate model ShowTime date:datetime time:datetime 

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

has_many :showtimes 

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

belongs_to :show 
+0

我认为您的ShowDate和ShowTime模型应该包含show_id:integer以使关系正常工作?不应该是'belongs_to:show'(小写“s”)? – 2010-09-22 07:49:46

+2

你为什么要把时间和日期分开?将这些组合成单个DateTime字段不是更有意义吗?然后每个放映时间可以有一个日期和一个独特的时间,而不需要单独管理它们。 – 2010-09-22 12:05:49

+0

对不起,如果我可能在我的文章中让你们感到困惑,或者我误会了。 但是,这不会要求我每天都特地添加吗? (就像我加上“10年9月13日5:30”,“10年9月20日5:30”和“10年9月27日5:30”?) 我希望能够给刚刚添加一周中的某一天以及那一天的时间。 – Rickmasta 2010-09-22 13:29:39

1

在我看来,这是最简单的解决办法是使用一个单一的DateTime对象,因为你可以得到一天以及Time对象的时间。


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

然后放在belongs_to的/有many_associations雅各提及。我认为有一个单独的showtime模式会更好,并允许更多的灵活性。您还应该查看Time对象上的strftime方法,以根据您的喜好设置时间格式。

+0

出于好奇,为什么要打扰ShowTime?为什么不把时间添加到Show模型?这似乎更像是一个属性,然后是它自己的东西 – 2010-09-22 12:44:30

+0

@Matt,OP希望能够多次与** ** ** Show'相关联,这就是为什么。 – 2010-09-22 13:49:02