Ruby on rails Rails:帮助设计模型,并将其与其他模型正确关联
我有一个rails应用程序,目前有3种型号: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… 现在,我希望用户能够创建有关电影的帖子,我的网站将显示这些帖子。
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。