我有一个rails应用程序,目前有3个模型:Post
, User
和Movie
。我已经列出了下面模型中的重要字段
Post: id: integer, user_id: integer, location_id: integer, description: string
Movie: id: integer, name: string, rating: decimal, ...
User: id: integer, email: string, encrypted_password: string ...
现在我希望用户能够创建关于电影的帖子,我的网站将显示这些帖子。如果有一个关于电影的预先存在的帖子,那么用户分配给电影的rating
应该被添加并与预先存在的评级平均,并且用户分配的description
应该被添加到已经存在于电影中的描述列表中。
第一个问题:如何持久地存储描述列表作为Movie
模型的一部分?例如,是否可以将字符串数组存储为Movie
模型的一部分,或者我是否应该为此目的创建一个新的Description
模型?
在此之后,我如何将这些模型关联起来,使它们按照预期运行?我的想法是:
Post -> belongs_to -> User
, User -> has_many -> Posts
, Post -> has_one -> Movie
,但我不确定这是将它们关联的正确方式,我没有:through
关联的任何经验(这里可能需要?)
正确的关联是:
User has_many Post
Movie has_many Post
Post belongs_to User
Post belongs_to Movie
需要在posts表中添加一个movie_id列。描述应该留在Post模型中,而不是Movie模型中。当您想要显示特定电影的帖子时,请使用@movie。