Как создать таблицу JOIN с тремя моделями: Project, User и Permission? Как убедиться, что проект и пользователь не повторяются? - PullRequest
0 голосов
/ 07 мая 2020

Мне нужно сохранить: какое разрешение у пользователя X в проекте Y.

У моделей есть другие атрибуты:

  • Project: id, name
  • User: id, name
  • Permission: id, name

Я создал следующую модель, потому что не смог сделать это с таблицей JOIN

rails g model PermissionProject permission:references project:references user:references

Сгенерированная схема для модели permission_project:

create_table "permission_projects", force: :cascade do |t|
  t.integer "permission_id", null: false
  t.integer "project_id", null: false
  t.integer "user_id", null: false
  t.datetime "created_at", precision: 6, null: false
  t.datetime "updated_at", precision: 6, null: false
  t.index ["permission_id"], name:"index_permission_projects_on_permission_id"
  t.index ["project_id"], name: "index_permission_projects_on_project_id"
  t.index ["user_id"], name: "index_permission_projects_on_user_id"
end    
...