首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用ActiveRecord将一个表中的两列指向另一个表中的同一列?

要使用ActiveRecord将一个表中的两列指向另一个表中的同一列,您需要创建两个模型,并在它们之间建立关联。以下是一个示例,展示了如何在Ruby on Rails应用程序中实现这一目标:

  1. 首先,创建两个模型:UserPost
代码语言:ruby
复制
class User< ApplicationRecord
  has_many :posts
end

class Post< ApplicationRecord
  belongs_to :user
end
  1. posts表中添加user_id列,该列将存储与User模型关联的id
代码语言:ruby
复制
class AddUserIdToPosts< ActiveRecord::Migration[6.1]
  def change
    add_column :posts, :user_id, :integer
  end
end
  1. 运行迁移以添加user_id列。
代码语言:bash
复制
rails db:migrate
  1. User模型中添加has_many关联。
代码语言:ruby
复制
class User< ApplicationRecord
  has_many :posts
end
  1. Post模型中添加belongs_to关联。
代码语言:ruby
复制
class Post< ApplicationRecord
  belongs_to :user
end

现在,您可以使用ActiveRecord在两个表之间建立关联。例如,要查找与特定用户关联的所有帖子,您可以使用以下代码:

代码语言:ruby
复制
user = User.find(1)
posts = user.posts

或者,要查找与特定帖子关联的用户,您可以使用以下代码:

代码语言:ruby
复制
post = Post.find(1)
user = post.user

这样,您就可以在Ruby on Rails应用程序中使用ActiveRecord将一个表中的两列指向另一个表中的同一列。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券