Ruby on rails Rails:帮助设计模型,并将其与其他模型正确关联

Ruby on rails Rails:帮助设计模型,并将其与其他模型正确关联,ruby-on-rails,ruby-on-rails-3,associations,Ruby On Rails,Ruby On Rails 3,Associations,我有一个rails应用程序,目前有3种型号:Post、User和Movie。我在下面的模型中列出了重要的字段 Post:id:integer,user\u id:integer,location\u id:integer,description:string Movie:id:integer,name:string,rating:decimal,… User:id:integer,email:string,加密密码:string… 现在,我希望用户能够创建有关电影的帖子,我的网站将显示这些帖子。

我有一个rails应用程序,目前有3种型号:
Post
User
Movie
。我在下面的模型中列出了重要的字段

Post:id:integer,user\u id:integer,location\u id:integer,description:string

Movie:id:integer,name:string,rating:decimal,…

User:id:integer,email:string,加密密码:string…

现在,我希望用户能够创建有关电影的帖子,我的网站将显示这些帖子。如果存在关于电影的预先存在的帖子,则应添加用户分配给电影的
评级
,并与预先存在的评级进行平均,并且应将用户分配给电影的
描述
添加到电影中已经存在的描述列表中

第一个问题:如何将描述列表持久存储为我的
电影
模型的一部分?例如,是否可以将字符串数组存储为
电影
模型的一部分,或者我是否应该为此创建一个新的
描述
模型

在这之后,我如何关联这些模型,使它们的行为符合预期?我的想法是:


Post->属于->用户
User->有很多->帖子
Post->有一篇->电影
,但我不确定这是将它们关联起来的正确方法,而且我对
没有任何经验:通过
关联(这里可能需要它)

正确的关联应该是:

User has_many Post
Movie has_many Post
Post belongs_to User
Post belongs_to Movie

您需要在posts表中添加一个movie_id列。描述应保留在后期模型中,而不是电影模型中。当您想在特定电影上显示帖子时,@movie.posts应该可以让您达到目的。

正确的关联应该是:

User has_many Post
Movie has_many Post
Post belongs_to User
Post belongs_to Movie

您需要在posts表中添加一个movie_id列。描述应保留在后期模型中,而不是电影模型中。当你想在某部电影上显示帖子时,@movie.posts应该能帮你达到目的。

另外,为了保持平均收视率,你需要保持一个收视率计数,以跟踪有多少用户对该电影进行了评分。从额定值=0和额定值计数=0开始。当用户对电影进行评级时,新评级=(旧评级+新评级)/(评级计数+1)。并将收视率计数增加1。另外,为了保持平均收视率,您需要保持收视率计数以跟踪有多少用户对该电影进行了收视率。从额定值=0和额定值计数=0开始。当用户对电影进行评级时,新评级=(旧评级+新评级)/(评级计数+1)。并将额定值_计数增加1。