I need to delete a couple of blog posts in Heroku rails console and I don't have enough experience of how to go about it.
I can see the blog post slug in the url, could I delete the blog posts utilizing its slug? If so, how?
This is what my schema looks like for those blogs:
create_table "blogs", force: :cascade do |t|
t.string "title"
t.text "body"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "slug"
t.integer "status", default: 0
t.bigint "topic_id"
t.index ["slug"], name: "index_blogs_on_slug", unique: true
t.index ["topic_id"], name: "index_blogs_on_topic_id"
end
I also know the topic_id
which those particular blogs belong to, would that help me identify and delete those blog posts?
I was able to identify the blogs in a topic by doing Step 1: Topic.find(18)
, Step 2: topic = Topic.find(18)
and Step 3: topic.blogs.first
. Is there a way I can delete that first topic?
You can use both to refer to those blogs:
Using slug:
list = ['slug1', 'slug2',..]
blogs = Blog.where(slug: list)
blogs.destroy_all
Using topic_id
list = ['topic1', 'topic2',..]
blogs = Blog.where(topic_id: list)
blogs.destroy_all
Caution
Blogs through slug
is I believe good approach than topic_id
because topics may have more blogs which you might not want to delete it.
In any case, review the blogs before deleting as it is irreversible.