Sigh, the "Valentine Plushie" series is messing with me again! It doesn't follow the previously established pattern of the names being "<series> <color> <species>", because in this case the base color is considered "Valentine". Okay, well! In this change we add `full_name` as an explicit database field, and set the previous full name value as a fallback. (We also extract the generic fallback logic into `ApplicationRecord`, to help us express it more concisely.) We also tweak `adjective_name` to be able to shorten custom `full_name` values, too. That way, in the outfit editor, the Styles options show correct values like "Cherub Plushie" for the "Cherub Plushie Acara". I also make some changes in the outfit editor to better accommodate the longer series names, to try to better handle long words but also to just only use the first word of the series main name anyway. (Currently, all series main names are one word, except "Valentine Plushie" becomes "Valentine".)
40 lines
2 KiB
Ruby
40 lines
2 KiB
Ruby
# This file is auto-generated from the current state of the database. Instead
|
|
# of editing this file, please use the migrations feature of Active Record to
|
|
# incrementally modify your database, and then regenerate this schema definition.
|
|
#
|
|
# This file is the source Rails uses to define your schema when running `bin/rails
|
|
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
|
|
# be faster and is potentially less error prone than running all of your
|
|
# migrations from scratch. Old migrations may fail to apply correctly if those
|
|
# migrations use external dependencies or application code.
|
|
#
|
|
# It's strongly recommended that you check this file into your version control system.
|
|
|
|
ActiveRecord::Schema[8.0].define(version: 2024_04_08_120359) do
|
|
create_table "users", id: { type: :integer, unsigned: true }, charset: "utf8mb3", collation: "utf8mb3_general_ci", force: :cascade do |t|
|
|
t.string "name", limit: 30, null: false
|
|
t.string "encrypted_password", limit: 64
|
|
t.string "email", limit: 50
|
|
t.string "password_salt", limit: 32
|
|
t.string "reset_password_token"
|
|
t.integer "sign_in_count", default: 0
|
|
t.datetime "current_sign_in_at", precision: nil
|
|
t.datetime "last_sign_in_at", precision: nil
|
|
t.string "current_sign_in_ip"
|
|
t.string "last_sign_in_ip"
|
|
t.integer "failed_attempts", default: 0
|
|
t.string "unlock_token"
|
|
t.datetime "locked_at", precision: nil
|
|
t.datetime "created_at", precision: nil
|
|
t.datetime "updated_at", precision: nil
|
|
t.datetime "reset_password_sent_at", precision: nil
|
|
t.datetime "remember_created_at"
|
|
t.string "provider"
|
|
t.string "uid"
|
|
t.string "neopass_email"
|
|
t.index ["email"], name: "index_users_on_email", unique: true
|
|
t.index ["provider", "uid"], name: "index_users_on_provider_and_uid", unique: true
|
|
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
|
|
t.index ["unlock_token"], name: "index_users_on_unlock_token", unique: true
|
|
end
|
|
end
|