我有两个型号,pit和user。坑基本上是一个光荣的邮政模式。这是用户参与的讨论。我基本上想要它,如果我可以让用户“加入”一个坑,然后联系到那个坑。我在这里做了一些搜索,我不太确定我是否需要创建另一个“组”模型。用户可以有许多坑,我也希望他们能够属于许多坑通过连接。我是新来的,我真的不想搞砸它,所以在开始这项工作之前,我想听听一些建议。谢谢你的建议。
电流坑模型
class Pit < ActiveRecord::Base
validates :topic, :author, :summary, presence: true
acts_as_taggable
acts_as_votable
has_many :comments
belongs_to :user
当前用户模型
class User < ActiveRecord::Base
acts_as_voter
has_many :pits
has_many :comments
基于我通过这个网站和谷歌的搜索,我觉得我可能需要用"has_many_through“创建一个单独的”组“模型,但如果不需要的话,我不想让事情变得过于复杂。谢谢。
发布于 2014-12-09 06:41:19
您需要使用多协会。
这将使每个用户有许多坑和每个坑可以有许多用户。它将允许您访问方法,如:
@user.pits
-将返回用户属于@pit.users
的所有坑-将返回属于特定坑的所有用户。
您需要通过迁移手动创建联接表,它应该被称为pits_users
,它将有两个列,pit_id
和user_id
。您需要同时更新Pit和用户模型如下:
class Pit < ActiveRecord::Base
...
has_and_belongs_to_many :users
class User < ActiveRecord::Base
...
has_and_belongs_to_many :pits
当用户加入一个pit时,您可以编写如下代码:
@pit.users.create(@current_user)
这将在join表中添加一个条目,其中包含pit和user id。
https://stackoverflow.com/questions/27369907
复制相似问题