2019-05-03 06:17:27 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2014-04-22 11:52:13 +08:00
|
|
|
class UserCustomField < ActiveRecord::Base
|
2023-12-15 01:06:21 +08:00
|
|
|
include CustomField
|
|
|
|
|
2014-04-22 11:52:13 +08:00
|
|
|
belongs_to :user
|
2021-04-27 13:52:45 +08:00
|
|
|
|
|
|
|
scope :searchable,
|
2023-11-29 13:38:07 +08:00
|
|
|
-> do
|
2021-04-27 13:52:45 +08:00
|
|
|
joins(
|
2024-12-17 08:06:19 +08:00
|
|
|
"INNER JOIN user_fields ON user_fields.id = REPLACE(user_custom_fields.name, 'user_field_', '')::INTEGER",
|
|
|
|
).where("user_fields.searchable = TRUE").where(
|
|
|
|
"user_custom_fields.name ~ ?",
|
|
|
|
'^user_field_\\d+$',
|
2021-04-27 13:52:45 +08:00
|
|
|
)
|
2023-11-29 13:38:07 +08:00
|
|
|
end
|
2014-04-22 11:52:13 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
# == Schema Information
|
|
|
|
#
|
|
|
|
# Table name: user_custom_fields
|
|
|
|
#
|
|
|
|
# id :integer not null, primary key
|
|
|
|
# user_id :integer not null
|
|
|
|
# name :string(256) not null
|
|
|
|
# value :text
|
2014-08-27 13:19:25 +08:00
|
|
|
# created_at :datetime not null
|
|
|
|
# updated_at :datetime not null
|
2014-04-22 11:52:13 +08:00
|
|
|
#
|
|
|
|
# Indexes
|
|
|
|
#
|
2024-05-10 23:47:12 +08:00
|
|
|
# index_user_custom_fields_on_user_id_and_name (user_id,name)
|
2014-04-22 11:52:13 +08:00
|
|
|
#
|