Пользователи принадлежат к Гильдии и могут создавать и владеть другими.
При создании учетной записи для пользователя создается гильдия Home
, которая уникально функционирует среди других гильдий.
Я пробовал user=User.new ==> user.home.build
, но это не работает.
Я продолжаю получать NoMethodError: undefined method 'build' for nil:NilClass
# == Schema Information
#
# Table name: guilds
#
# id :bigint not null, primary key
# is_home :boolean default(FALSE)
# name :string not null
# owner_id :integer not null
# member_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
class Guild < ApplicationRecord
belongs_to :owner, class_name: :User
has_many :guild_members, class_name: :User
# Trying here.
def self.create_home(user)
home = Guild.new(is_home: true, name: user.name, owner_id: user.id )
end
end
# frozen_string_literal: true
# == Schema Information
#
# Table name: users
#
# id :bigint not null, primary key
# username :string not null
# digits :integer not null
# email :string
# password_digest :string not null
# session_token :string not null
# created_at :datetime not null
# updated_at :datetime not null
# home_id :integer not null
#
class User < ApplicationRecord
has_one :home, class_name: :Guild, foreign_key: :home_id
belongs_to :guild
end