我在組織Rails項目及其有關文件夾結構和約定的模型方面遇到了一些麻煩,我似乎無法在任何地方找到與此相關的任何內容。在Rails中組織一個名稱空間和相關模型
比方說,我想創建一個Cinema
模型,Cinema
有許多Cinema::Location
模型和每個Cinema::Location
有很多Cinema::Location::Movie
場次,對每一個電影可以有一個Cinema::Location::Movie::Review
,更何況每個評論可能有意見頂部...
我的文件夾結構會是這個樣子:
- 應用程序/模型/ cinema.rb
- 應用程序/模型/影院/ location.rb
- 應用程序/模型/影院/位置/ movie.rb
- 應用程序/模型/影院/位置/電影/ review.rb
- 應用程序/模型/影院/位置/電影/審查/ comment.rb
這是一個有組織的解決方案,但同時它看起來不太好,如果我們談論表格(cinema_location_movie_review_comment_replies
),情況會更糟糕。
有一件事我可以做的是組織模式是這樣的:Cinema::Location
的位置和Location::Movie
電影,Movie::Review
的評論等
的文件夾結構是這樣的:
- 應用/models/cinema.rb
- 應用程序/模型/影院/ location.rb
- 應用程序/模型/位置/ movie.rb
這樣可以解決表名(location_movie
或movie_review
)的問題。
是否有關於多級命名空間模型的約定?
我該如何處理僅用於引用其他模型的模型?例如,只有'Cinema'可以有許多'Location'模型,'Cinema'可以通過'Location'有很多'Movies'? – user3376486
我想我只是在這裏回答自己。謝謝! – user3376486
Yup :-)另外,在我看來''Location'可能'has_and_belongs_to_many:movies',因爲你可能想要一個多對多的關係(即在'location'有很多'movies',但是每一個「電影」顯示在許多「地點」)。取決於你在數據模型中要做什麼,但似乎你在正確的軌道上。 – jmschles