rails 关联模型_了解Rails多态活动记录关联

rails 关联模型

简单的介绍

要了解Rails多态关联,让我们对Rails Active Record有所了解。 什么是Rails Active Record?

Rails Active Record是MVC体系结构框架中的M。 模型是负责表示业务逻辑和数据的系统层。 Active Record促进了业务对象的创建和使用,这些业务对象的数据需要持久存储到数据库中。

它是活动记录模式的实现,活动记录模式本身是对象关系映射系统的描述。

多态关联是一个Active Record关联,可以将一个模型连接到多个其他模型。 例如; 我们可以使用单个关联将Post模型与Comment和Like模型连接起来,从而允许我们查询Post模型。

让我们继续看代码,首先,我们创建一个Rails应用程序

railsnew post_app

此命令将生成我们需要的基本文件。 现在,我们将生成3个模型,如上图所示。 创建模型的步骤如下所述:

rails g model Postcontent : string image : string like_id: integer comment_id: integer

此命令将使用指定的列为帖子创建一个迁移文件。

rails g modelComment content : string

此命令为具有指定column => content的注释创建迁移文件,rails将为每个模型添加一个默认ID,在这种情况下,rails将生成comment_id

rails g model Likecontent : string

现在,是时候将关联添加到模型中了。

post.rb

class Like & lt ; ApplicationRecord
has_many:comments<br>has_many :likes
end

comment.rb

class Comment & lt ; ApplicationRecord
belongs_to  :post
end

like.rb

class Like & lt ; ApplicationRecord
belongs_to  :post
end

现在,我们有了所有的模型和多态关联设置。 下一步是使用以下命令迁移我们的迁移文件

rails db :migrate

此命令将在我们的db / schema.rb中创建一个schema.rb文件,在其中我们所有3个表都已设置

现在,我们可以在rails控制台的帮助下测试我们的关联。 类型

rails c

打开rails控制台。 现在我们可以使用以下命令创建帖子

p1 = Post.create(content: 'my first post' , image: 'free.png' )

该命令将在变量p1中创建并保存帖子。 当我们键入p1时,我们应该有该帖子的详细信息

&lt;Postid: 1 , content: 'my first post' , image: 'free.png' &gt;

现在,让我们通过将第一个注释分配给变量来创建注释

c1 = Comment.create(content: 'the post is awesome' )

该命令将引发错误,因为评论与帖子相关联,因此为了解决此问题。 让我们检查下面的命令

c1 = Comment.create(content: 'the post is awesome' , post_id: 1 )

使用post_id作为参数,现在可以成功创建注释。

现在,让我们像注释一样创建1。

l1 =Like . new (content: 'i like the post', post_id: 1)

该命令将在不保存的情况下创建like,因此我们需要使用以下命令将其保存

l1 .save

这就是为什么我喜欢在本文中使用“创建”方法。 现在,我们可以在控制台中处理模型和关联。 有关更多信息和详细说明,请访问Rails文档https://guides.rubyonrails.org/active_record_basics.html

如果您喜欢这篇文章,请与朋友分享。 感谢您的阅读。 我的下一篇文章将涉及Javascript Async和Await。 在此之前,祝您编码愉快

翻译自: https://hackernoon.com/understanding-rails-polymorphic-active-record-associations-jg703wbi

rails 关联模型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值