2011-03-26 67 views
2

好的,我有一個照片模型和控制器來處理照片..我有兩個其他模型的餐廳和菜,我希望能夠處理照片模型的照片。所以我創建了照片模型,作爲對餐具或餐廳數據庫表的多態引用。我是否應該使用餐廳控制器來處理上傳餐廳照片和菜品控制器的相同內容,或者我應該使用照片控制器來處理上傳的照片?什麼是處理多對多的軌道方式?

回答

1

使用多態類的唯一原因是它們的業務(或其他)邏輯非常相似,唯一不同的是它們的數據結構(它也有類似的部分)。因此,您應該使用帶有單控制器的多變量模型,或者使用單獨控制器的單獨類(模型)。

當然,你可以使用你的多態模型獨立的控制器,但它不在最佳實踐,我認爲

0

有了這個計劃,你能想到的照片作爲餐廳和Dish記錄有些複雜屬性。所以我可能會處理上傳照片在同一個地方,餐廳和菜餚的其他屬性處理。在RESTful方案中,這將發生在restaurants_controller和dishes_controller中的新/編輯操作中。整個文件上傳過程可以通過像CarrierWave這樣的好插件得到很大的幫助。

+0

把它放在新的/編輯操作中唯一的麻煩是我希望用戶能夠上傳多張照片,而不是每個菜/餐廳一個。我是否應該創建一個名爲「可能是新照片/編輯照片」的新動作? – Tyler 2011-03-26 20:10:02

+0

你可以使用ajax有一個「更聰明」的形式,允許你在一個視圖中添加多個圖片。您還可以查看[this](http://railscasts.com/episodes/75-complex-forms-part-3)railscast瞭解有關製作複雜表單的一些想法。 – 2011-03-26 23:05:54

相關問題