feature/075 into main 3 days ago
| @@ -88,7 +88,7 @@ class PostsController < ApplicationController | |||||
| original_created_from = params[:original_created_from] | original_created_from = params[:original_created_from] | ||||
| original_created_before = params[:original_created_before] | original_created_before = params[:original_created_before] | ||||
| post = Post.new(title:, url:, thumbnail_base: '', uploaded_user: current_user, | |||||
| post = Post.new(title:, url:, thumbnail_base: nil, uploaded_user: current_user, | |||||
| original_created_from:, original_created_before:) | original_created_from:, original_created_before:) | ||||
| post.thumbnail.attach(thumbnail) | post.thumbnail.attach(thumbnail) | ||||
| if post.save | if post.save | ||||
| @@ -0,0 +1,27 @@ | |||||
| class MakeThumbnailBaseNullableInPosts < ActiveRecord::Migration[7.0] | |||||
| def up | |||||
| change_column_null :posts, :thumbnail_base, true | |||||
| execute <<~SQL | |||||
| UPDATE | |||||
| posts | |||||
| SET | |||||
| thumbnail_base = NULL | |||||
| WHERE | |||||
| thumbnail_base = '' | |||||
| SQL | |||||
| end | |||||
| def down | |||||
| execute <<~SQL | |||||
| UPDATE | |||||
| posts | |||||
| SET | |||||
| thumbnail_base = '' | |||||
| WHERE | |||||
| thumbnail_base IS NULL | |||||
| SQL | |||||
| change_column_null :posts, :thumbnail_base, false | |||||
| end | |||||
| end | |||||
| @@ -10,7 +10,7 @@ | |||||
| # | # | ||||
| # It's strongly recommended that you check this file into your version control system. | # It's strongly recommended that you check this file into your version control system. | ||||
| ActiveRecord::Schema[8.0].define(version: 2025_12_29_022100) do | |||||
| ActiveRecord::Schema[8.0].define(version: 2025_12_30_143400) do | |||||
| create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| | create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| | ||||
| t.string "name", null: false | t.string "name", null: false | ||||
| t.string "record_type", null: false | t.string "record_type", null: false | ||||
| @@ -86,7 +86,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_12_29_022100) do | |||||
| create_table "posts", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| | create_table "posts", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t| | ||||
| t.string "title", null: false | t.string "title", null: false | ||||
| t.string "url", limit: 2000, null: false | t.string "url", limit: 2000, null: false | ||||
| t.string "thumbnail_base", limit: 2000, null: false | |||||
| t.string "thumbnail_base", limit: 2000 | |||||
| t.bigint "parent_id" | t.bigint "parent_id" | ||||
| t.bigint "uploaded_user_id" | t.bigint "uploaded_user_id" | ||||
| t.datetime "created_at", null: false | t.datetime "created_at", null: false | ||||
| @@ -49,7 +49,7 @@ namespace :nico do | |||||
| unless post | unless post | ||||
| title = datum['title'] | title = datum['title'] | ||||
| url = "https://www.nicovideo.jp/watch/#{ datum['code'] }" | url = "https://www.nicovideo.jp/watch/#{ datum['code'] }" | ||||
| thumbnail_base = fetch_thumbnail.(url) || '' rescue '' | |||||
| thumbnail_base = fetch_thumbnail.(url) rescue nil | |||||
| post = Post.new(title:, url:, thumbnail_base:, uploaded_user: nil) | post = Post.new(title:, url:, thumbnail_base:, uploaded_user: nil) | ||||
| if thumbnail_base.present? | if thumbnail_base.present? | ||||
| post.thumbnail.attach( | post.thumbnail.attach( | ||||