要使用ActiveRecord将一个表中的两列指向另一个表中的同一列,您需要创建两个模型,并在它们之间建立关联。以下是一个示例,展示了如何在Ruby on Rails应用程序中实现这一目标:
User
和Post
。class User< ApplicationRecord
has_many :posts
end
class Post< ApplicationRecord
belongs_to :user
end
posts
表中添加user_id
列,该列将存储与User
模型关联的id
。class AddUserIdToPosts< ActiveRecord::Migration[6.1]
def change
add_column :posts, :user_id, :integer
end
end
user_id
列。rails db:migrate
User
模型中添加has_many
关联。class User< ApplicationRecord
has_many :posts
end
Post
模型中添加belongs_to
关联。class Post< ApplicationRecord
belongs_to :user
end
现在,您可以使用ActiveRecord在两个表之间建立关联。例如,要查找与特定用户关联的所有帖子,您可以使用以下代码:
user = User.find(1)
posts = user.posts
或者,要查找与特定帖子关联的用户,您可以使用以下代码:
post = Post.find(1)
user = post.user
这样,您就可以在Ruby on Rails应用程序中使用ActiveRecord将一个表中的两列指向另一个表中的同一列。
领取专属 10元无门槛券
手把手带您无忧上云