繁体   English   中英

Ruby上的循环模型依赖关系

[英]Circular model dependencies with ruby on rails

我正在尝试为群聊应用程序设计数据库模型层次结构和数据库迁移,因此我是Rails的新手,所以我对应该如何构建它感到非常困惑...任何指导将不胜感激!

它分解如下:

群组<==>用户<==>帖子
群组==>帖子

因此,组具有一堆用户,用户具有一堆组,但是这些组也具有用户发表的帖子。 每个帖子属于一个组和一个用户。 该帖子还必须维护对发布该帖子的用户的引用。

我应该只对这三个表进行联接吗? 这样实用/有效吗?

我只是感到困惑,我应该在哪里使用belongs_tohas_onehas_manyhas_and_belongs_to_many以及应该如何编写迁移文件...

感谢您的任何提前帮助

你可以用下一种方式

has_and_belongs_to_many :users
has_many :posts

用户

has_and_belongs_to_many :groups
has_many :posts

帖子

belongs_to :group
belongs_to :user

posts表应具有group_iduser_id列,还可以创建表groups_users迁移:

class CreateGroupsUsers < ActiveRecord::Migration
  def change
    create_table :groups_users, id: false do |t|
      t.references :group, index: true
      t.references :user, index: true
    end
  end
end

这应该工作!

编辑

用于在用户和组之间添加关联:

group = Group.create(name: 'New Group')
user = User.last
user.groups << group

要么

user.build_group(name: 'New Group')
user.save

或者您可以使用nested_attributes

User.create(params[:user])

其中params[:user] = {user_name: 'James Bond', group_attributes: {name: 'New Group'}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM