首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要知道是否需要第三种模式来将用户与另一种模型连接起来。

需要知道是否需要第三种模式来将用户与另一种模型连接起来。
EN

Stack Overflow用户
提问于 2014-12-09 01:16:19
回答 1查看 36关注 0票数 0

我有两个型号,pit和user。坑基本上是一个光荣的邮政模式。这是用户参与的讨论。我基本上想要它,如果我可以让用户“加入”一个坑,然后联系到那个坑。我在这里做了一些搜索,我不太确定我是否需要创建另一个“组”模型。用户可以有许多坑,我也希望他们能够属于许多坑通过连接。我是新来的,我真的不想搞砸它,所以在开始这项工作之前,我想听听一些建议。谢谢你的建议。

电流坑模型

代码语言:javascript
运行
复制
class Pit < ActiveRecord::Base
  validates :topic, :author, :summary, presence: true
  acts_as_taggable
  acts_as_votable
  has_many :comments
  belongs_to :user

当前用户模型

代码语言:javascript
运行
复制
class User < ActiveRecord::Base
  acts_as_voter
  has_many :pits
  has_many :comments

基于我通过这个网站和谷歌的搜索,我觉得我可能需要用"has_many_through“创建一个单独的”组“模型,但如果不需要的话,我不想让事情变得过于复杂。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-09 06:41:19

您需要使用多协会

这将使每个用户有许多坑和每个坑可以有许多用户。它将允许您访问方法,如:

@user.pits -将返回用户属于@pit.users的所有坑-将返回属于特定坑的所有用户。

您需要通过迁移手动创建联接表,它应该被称为pits_users,它将有两个列,pit_iduser_id。您需要同时更新Pit和用户模型如下:

代码语言:javascript
运行
复制
class Pit < ActiveRecord::Base
  ...
  has_and_belongs_to_many :users

class User < ActiveRecord::Base
  ...
  has_and_belongs_to_many :pits

当用户加入一个pit时,您可以编写如下代码:

代码语言:javascript
运行
复制
@pit.users.create(@current_user)

这将在join表中添加一个条目,其中包含pit和user id。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27369907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档