diff --git a/backend/app/models/41454326.32113544.jpg b/backend/app/models/41454326.32113544.jpg new file mode 100644 index 0000000..4eb8238 Binary files /dev/null and b/backend/app/models/41454326.32113544.jpg differ diff --git a/backend/app/models/post.rb b/backend/app/models/post.rb index ecc2f17..f4b77ff 100644 --- a/backend/app/models/post.rb +++ b/backend/app/models/post.rb @@ -4,4 +4,12 @@ class Post < ApplicationRecord has_many :post_tags, dependent: :destroy has_many :tags, through: :post_tags has_many :user_post_views, dependent: :destroy + has_one_attached :thumbnail + + def as_json options = { } + super(options).merge({ thumbnail: thumbnail.attached? ? + Rails.application.routes.url_helpers.rails_blob_url( + thumbnail, only_path: false) : + nil }) + end end diff --git a/backend/config/environments/production.rb b/backend/config/environments/production.rb index f49bf44..0bd58c3 100644 --- a/backend/config/environments/production.rb +++ b/backend/config/environments/production.rb @@ -85,3 +85,5 @@ Rails.application.configure do # Skip DNS rebinding protection for the default health check endpoint. # config.host_authorization = { exclude: ->(request) { request.path == "/up" } } end + +Rails.application.routes.default_url_options[:host] = 'hub.nizika.monster/api' diff --git a/backend/db/migrate/20250520152153_create_active_storage_tables.active_storage.rb b/backend/db/migrate/20250520152153_create_active_storage_tables.active_storage.rb new file mode 100644 index 0000000..6bd8bd0 --- /dev/null +++ b/backend/db/migrate/20250520152153_create_active_storage_tables.active_storage.rb @@ -0,0 +1,57 @@ +# This migration comes from active_storage (originally 20170806125915) +class CreateActiveStorageTables < ActiveRecord::Migration[7.0] + def change + # Use Active Record's configured type for primary and foreign keys + primary_key_type, foreign_key_type = primary_and_foreign_key_types + + create_table :active_storage_blobs, id: primary_key_type do |t| + t.string :key, null: false + t.string :filename, null: false + t.string :content_type + t.text :metadata + t.string :service_name, null: false + t.bigint :byte_size, null: false + t.string :checksum + + if connection.supports_datetime_with_precision? + t.datetime :created_at, precision: 6, null: false + else + t.datetime :created_at, null: false + end + + t.index [ :key ], unique: true + end + + create_table :active_storage_attachments, id: primary_key_type do |t| + t.string :name, null: false + t.references :record, null: false, polymorphic: true, index: false, type: foreign_key_type + t.references :blob, null: false, type: foreign_key_type + + if connection.supports_datetime_with_precision? + t.datetime :created_at, precision: 6, null: false + else + t.datetime :created_at, null: false + end + + t.index [ :record_type, :record_id, :name, :blob_id ], name: :index_active_storage_attachments_uniqueness, unique: true + t.foreign_key :active_storage_blobs, column: :blob_id + end + + create_table :active_storage_variant_records, id: primary_key_type do |t| + t.belongs_to :blob, null: false, index: false, type: foreign_key_type + t.string :variation_digest, null: false + + t.index [ :blob_id, :variation_digest ], name: :index_active_storage_variant_records_uniqueness, unique: true + t.foreign_key :active_storage_blobs, column: :blob_id + end + end + + private + def primary_and_foreign_key_types + config = Rails.configuration.generators + setting = config.options[config.orm][:primary_key_type] + primary_key_type = setting || :primary_key + foreign_key_type = setting || :bigint + [ primary_key_type, foreign_key_type ] + end +end diff --git a/backend/db/migrate/20250520152740_remove_thumbnail_from_posts.rb b/backend/db/migrate/20250520152740_remove_thumbnail_from_posts.rb new file mode 100644 index 0000000..abf60f5 --- /dev/null +++ b/backend/db/migrate/20250520152740_remove_thumbnail_from_posts.rb @@ -0,0 +1,5 @@ +class RemoveThumbnailFromPosts < ActiveRecord::Migration[8.0] + def change + remove_column :posts, :thumbnail, :string + end +end diff --git a/frontend/index.html b/frontend/index.html index 1bf5475..f1157da 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -1,5 +1,5 @@ - + diff --git a/frontend/src/pages/HomePage.tsx b/frontend/src/pages/HomePage.tsx index af5d2a6..4d1c8a0 100644 --- a/frontend/src/pages/HomePage.tsx +++ b/frontend/src/pages/HomePage.tsx @@ -21,15 +21,14 @@ const HomePage = () => { return (
- {posts.map((post) => ( + {posts.map (post => ( {post.title}