簡體   English   中英

Rails添加表和關系

[英]Rails adding table and relation

我的所有用戶都有一個用戶表

現在我要介紹用戶組

因此,我需要用於組的第二張表以及這些組之間的關系。

應該可以將用戶設置為不同的組。 所以我需要一個:m關系

它了解到Rails可以生成我需要的大多數東西,還可以生成遷移文件? 真的嗎? 如何運作?

移居

class CreateUserGroups < ActiveRecord::Migration
  def up
    create_table :user_groups do |t|
      t.string :name
      t.integer :size

      t.timestamps
   end
  end

  def self.down
    drop_table :user_groups
  end
end


class CreateUserGroupUsers < ActiveRecord::Migration
  def self.up
    create_table :user_group_users do |t|
    t.user_id:integer
    t.user_groups_id:integer
    t.timestamps
  end
end

def self.down
    drop_table :user_group_users
 end

end

創建用戶和用戶組模型並從終端遷移

rails g model User email:string password:string
rails g model UserGroup name:string size:integer

您還需要創建一個名為UserGroupManagerUserGroupUser關系管理表

rails g model UserGroupManager user_id:integer user_group_id:integer

通過在終端中運行此命令來更新數據庫

rake db:migrate

在應用程序/模型/中設置關系

# app/models/user.rb
class User < ActiveRecord::Base
  has_many :user_group_managers
  has_many :user_groups, through: :user_group_managers
end

# app/models/user_group.rb
class UserGroup < ActiveRecord::Base
  has_many :user_group_managers
  has_many :users, through: :user_group_managers
end

# app/models/user_group_manager.rb
class UserGroupManager < ActiveRecord::Base
  belongs_to :user_group
  belongs_to :user
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM