【发布时间】:2017-09-12 20:33:17
【问题描述】:
我正在使用 Rails 5 创建一个 Web 应用程序,用户可以在其中创建组并将文件上传到组。我已经创建了一个用户模型、组模型和成员模型。
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
groupify :group_member
groupify :named_group_member
validates :email, :presence => true, :uniqueness => true
has_many :members
has_many :groups, through: :member
end
class Group < ApplicationRecord
groupify :group, members: [:users, :assignments], default_members: :users
has_many :members
has_many :groups, through: :member
end
class Member < ApplicationRecord
belongs_to :group
belongs_to :user
end
我可以创建用户和组,但我不明白如何填写成员表。它由两列组成,user_id 和 group_id。
编辑: 这些是我的迁移文件
class CreateMembers < ActiveRecord::Migration[5.0]
def change
create_table :members do |t|
t.integer :user_id
t.integer :group_id
t.timestamps
end
add_index :members , [:user_id,:group_id]
end
end
class DeviseCreateUsers < ActiveRecord::Migration[5.0]
def change
create_table :users do |t|
t.string :name , null: false
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
t.string :reset_password_token
t.datetime :reset_password_sent_at
t.datetime :remember_created_at
t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
t.timestamps null: false
end
add_index :users, :email, unique: true
add_index :users, :reset_password_token, unique: true
end
end
我的 users 表中没有 group_id,它只存在于 groups 和 member 表中。
【问题讨论】:
标签: ruby-on-rails sqlite activerecord