diff --git a/app/views/books/index.json.jbuilder b/app/views/books/index.json.jbuilder index ed103ef..1e0c869 100644 --- a/app/views/books/index.json.jbuilder +++ b/app/views/books/index.json.jbuilder @@ -3,5 +3,5 @@ json.key_format! :camelize => :lower json.books do - json.array!(@books, :id, :sequence, :title, :en_title, :en_short_summary, :en_synopsis, :artwork_url, :number_of_chapters_released) + json.array!(@books, :id, :sequence, :title, :en_title, :en_short_summary, :en_synopsis, :artwork_url, :number_of_chapters_released, :slug) end diff --git a/db/migrate/20240214064320_add_slug_to_books.rb b/db/migrate/20240214064320_add_slug_to_books.rb new file mode 100644 index 0000000..438a782 --- /dev/null +++ b/db/migrate/20240214064320_add_slug_to_books.rb @@ -0,0 +1,39 @@ +class AddSlugToBooks < ActiveRecord::Migration[7.0] + def change + add_column :books, :slug, :string + add_index :books, :slug, :unique => true + + reversible do |dir| + dir.up do + slug_mappings = [ + { :id => 1, :slug => 'nanak-prakash-purbardh' }, + { :id => 2, :slug => 'nanak-prakash-utrardh' }, + { :id => 3, :slug => 'raas-1' }, + { :id => 4, :slug => 'raas-2' }, + { :id => 5, :slug => 'raas-3' }, + { :id => 6, :slug => 'raas-4' }, + { :id => 7, :slug => 'raas-5' }, + { :id => 8, :slug => 'raas-6' }, + { :id => 9, :slug => 'raas-7' }, + { :id => 10, :slug => 'raas-8' }, + { :id => 11, :slug => 'raas-9' }, + { :id => 12, :slug => 'raas-10' }, + { :id => 13, :slug => 'raas-11' }, + { :id => 14, :slug => 'raas-12' }, + { :id => 15, :slug => 'rut-1' }, + { :id => 16, :slug => 'rut-2' }, + { :id => 17, :slug => 'rut-3' }, + { :id => 18, :slug => 'rut-4' }, + { :id => 19, :slug => 'rut-5' }, + { :id => 20, :slug => 'rut-6' }, + { :id => 21, :slug => 'ayaan-1' }, + { :id => 22, :slug => 'ayaan-2' } + ] + + slug_mappings.each do |mapping| + Book.find_by(:id => mapping[:id])&.update(:slug => mapping[:slug]) + end + end + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 03777dd..71c6642 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2023_06_11_191536) do +ActiveRecord::Schema[7.0].define(version: 2024_02_14_064320) do create_table "books", force: :cascade do |t| t.integer "sequence", null: false t.string "title", null: false @@ -20,6 +20,8 @@ t.text "artwork_url" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.string "slug" + t.index ["slug"], name: "index_books_on_slug", unique: true end create_table "chapter_kathas", force: :cascade do |t|