首页 > 解决方案 > 用户注册/登录后创建团队或加入团队

问题描述

我目前正在开发一个 Ruby on Rails 应用程序,其中设计用户在成功登录/注册后可以创建团队或加入团队。创建团队的用户将成为所有者并且不能属于任何其他团队,决定加入团队的用户将看到所有已创建并能够加入的团队。我在理解为此需要使用的关系时遇到了很多麻烦

用户.rb

class User < ApplicationRecord
   devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable, :confirmable 
   validates_presence_of :phone, :city, :state, :street, :zip, presence: true, on: :create
      has_one :team     
end

架构.rb

  create_table "teams", force: :cascade do |t|
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "team_name"
  end

create_table "users", force: :cascade do |t|
    t.string "email", default: "", null: false
    t.string "encrypted_password", default: "", null: false
    t.string "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string "confirmation_token"
    t.datetime "confirmed_at"
    t.datetime "confirmation_sent_at"
    t.string "firstname"
    t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
    t.index ["email"], name: "index_users_on_email", unique: true
    t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
end

团队.rb

class Team < ApplicationRecord
  belongs_to :user, class_name: 'User'  
end

路线.rb

   devise_for :users, path: 'users' , controllers: { sessions: "users/sessions", confirmations: 'users/confirmations', registrations: 'users/registrations' } 

我是否使用了正确的方法?

标签: ruby-on-railsrubydeviseassociations

解决方案


推荐阅读