Ruby on rails 使用现有Tweet模型实现转发功能
我正在尝试为Twitter克隆实现转发(repost)功能。我最初认为我可能需要一个单独的转发模型,但我想尝试使用我现有的tweet(micropost)模型来实现它 我很难理解模式以及需要运行哪些迁移。Micropost需要一个Repost列,但用户需要一个Repost\u id吗?所以我会在Micropost中添加一个Repost列,它会引用用户?或者我应该将该列添加到用户模型中吗 另外,如果repost功能的工作方式与create类似,那么它会不会工作Ruby on rails 使用现有Tweet模型实现转发功能,ruby-on-rails,twitter,model,Ruby On Rails,Twitter,Model,我正在尝试为Twitter克隆实现转发(repost)功能。我最初认为我可能需要一个单独的转发模型,但我想尝试使用我现有的tweet(micropost)模型来实现它 我很难理解模式以及需要运行哪些迁移。Micropost需要一个Repost列,但用户需要一个Repost\u id吗?所以我会在Micropost中添加一个Repost列,它会引用用户?或者我应该将该列添加到用户模型中吗 另外,如果repost功能的工作方式与create类似,那么它会不会工作 def repost @
def repost
@micropost = Micropost.find(params[:id])
@repost = @micropost.repost by current_user
if @repost.save
flash[:success] = "Repost created!"
redirect_to root_url
else
@feed_items = current_user.feed.paginate(page: params[:page])
render 'static_pages/home'
end
end
是否有任何方法可以编辑我当前的Micropost模型,或者我需要使用特定的Repost模型?我的方法是询问我是否需要Repost和用户之间的一对多或多对多关系。一个用户可以有(生成)多个repost,并且一个repost可以由多个用户进行repost,因此这将是一种多对多关系。这意味着您需要一个用户和micropost之间的联合表——在本例中,它的最佳名称是repost 如果你想从另一个角度来考虑这个问题——就像你提出的那样:如果你在用户id列中引用micropost表中的用户id,那么只有“足够的空间”来保存一个用户id。。。因此,这将是一对多的关联,这对重新发布没有多大意义
对于有关该方法的问题,您需要在用户单击按钮(提交表单)进行重新发布后创建一个新的重新发布实例。您应该看看嵌套资源:我的方法是询问我是否需要在repost和用户之间建立一对多或多对多的关系。一个用户可以有(生成)多个repost,并且一个repost可以由多个用户进行repost,因此这将是一种多对多关系。这意味着您需要一个用户和micropost之间的联合表——在本例中,它的最佳名称是repost 如果你想从另一个角度来考虑这个问题——就像你提出的那样:如果你在用户id列中引用micropost表中的用户id,那么只有“足够的空间”来保存一个用户id。。。因此,这将是一对多的关联,这对重新发布没有多大意义 对于有关该方法的问题,您需要在用户单击按钮(提交表单)进行重新发布后创建一个新的重新发布实例。您应该看看嵌套资源: