MST
星途 面试题库

面试题:Ruby中ORM模式下关联关系的处理

假设我们有两个数据库表,一个是`users`表,包含`id`、`name`等字段;另一个是`posts`表,包含`id`、`user_id`(关联`users`表的`id`)、`content`等字段。在Ruby的ORM模式(如ActiveRecord)中,如何定义这两个表对应的模型类之间的关联关系(一对多),并实现通过用户对象获取其所有文章的功能,给出详细代码实现。
30.4万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试

在Ruby的ActiveRecord中,定义这两个表对应的模型类之间的一对多关联关系并实现通过用户对象获取其所有文章的功能,代码如下:

用户模型类 User

class User < ApplicationRecord
  has_many :posts
end

文章模型类 Post

class Post < ApplicationRecord
  belongs_to :user
end

通过用户对象获取其所有文章

# 假设已经有一个用户对象
user = User.find(1) # 这里假设获取id为1的用户
posts = user.posts # 通过用户对象获取其所有文章
posts.each do |post|
  puts post.content
end