2010-09-22 45 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