User belongs to Signal::User

This commit is contained in:
Mike Dalessio
2025-06-12 12:54:22 -04:00
parent 192c6036bc
commit 0da5f8101e
7 changed files with 59 additions and 3 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
class User < ApplicationRecord
include Accessor, ActionText::Attachable, Assignee, Mentionable, Named, Role, Transferable
include Accessor, ActionText::Attachable, Assignee, Mentionable, Named, Role, SignalUser, Transferable
include Timelined # Depends on Accessor
has_one_attached :avatar
+7
View File
@@ -0,0 +1,7 @@
module User::SignalUser
extend ActiveSupport::Concern
included do
belongs_to :signal_user, dependent: :destroy, class_name: "SignalId::User", optional: true
end
end
@@ -0,0 +1,6 @@
class AddSignalUserIdToUsers < ActiveRecord::Migration[8.1]
def change
add_column :users, :signal_user_id, :integer
add_index :users, :signal_user_id, unique: true
end
end
Generated
+3 -1
View File
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[8.1].define(version: 2025_06_11_203906) do
ActiveRecord::Schema[8.1].define(version: 2025_06_12_163028) do
create_table "accesses", force: :cascade do |t|
t.integer "collection_id", null: false
t.datetime "created_at", null: false
@@ -336,9 +336,11 @@ ActiveRecord::Schema[8.1].define(version: 2025_06_11_203906) do
t.string "name", null: false
t.string "password_digest"
t.string "role", default: "member", null: false
t.integer "signal_user_id"
t.datetime "updated_at", null: false
t.index ["email_address"], name: "index_users_on_email_address", unique: true
t.index ["role"], name: "index_users_on_role"
t.index ["signal_user_id"], name: "index_users_on_signal_user_id", unique: true
end
create_table "watches", force: :cascade do |t|
+27 -1
View File
@@ -993,6 +993,16 @@ columns:
default_function:
collation:
comment:
- !ruby/object:ActiveRecord::ConnectionAdapters::SQLite3::Column
auto_increment:
name: signal_user_id
cast_type: *1
sql_type_metadata: *2
'null': true
default:
default_function:
collation:
comment:
- *9
watches:
- *22
@@ -2276,6 +2286,22 @@ indexes:
nulls_not_distinct:
comment:
valid: true
- !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition
table: users
name: index_users_on_signal_user_id
unique: true
columns:
- signal_user_id
lengths: {}
orders: {}
opclasses: {}
where:
type:
using:
include:
nulls_not_distinct:
comment:
valid: true
watches:
- !ruby/object:ActiveRecord::ConnectionAdapters::IndexDefinition
table: watches
@@ -2327,4 +2353,4 @@ indexes:
comment:
valid: true
workflows: []
version: 20250611203906
version: 20250612163028
+3
View File
@@ -5,18 +5,21 @@ david:
email_address: david@37signals.com
password_digest: <%= digest %>
role: member
signal_user: 37s_fizzy_david
jz:
name: JZ
email_address: jz@37signals.com
password_digest: <%= digest %>
role: member
signal_user: 37s_fizzy_jz
kevin:
name: Kevin
email_address: kevin@37signals.com
password_digest: <%= digest %>
role: admin
signal_user: 37s_fizzy_kevin
system:
name: System
+12
View File
@@ -0,0 +1,12 @@
require "test_helper"
class User::SignalUserTest < ActiveSupport::TestCase
setup do
@user = users(:david)
end
test "belongs to a Signal::User" do
assert_not_nil @user.signal_user_id
assert_equal signal_users("37s_fizzy_david"), @user.signal_user
end
end