#ruby-on-rails #heroku-cli
#ruby-on-rails #heroku-cli
Вопрос:
Мне нужно удалить пару сообщений в блоге в консоли Heroku rails, и у меня недостаточно опыта в том, как это сделать.
Я вижу ссылку на сообщение в блоге в URL, могу ли я удалить сообщения в блоге, используя его ссылку? Если да, то как?
Вот как выглядит моя схема для этих блогов:
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
Я также знаю, к topic_id
каким конкретным блогам принадлежат эти конкретные блоги, поможет ли это мне идентифицировать и удалять эти сообщения в блоге?
Я смог идентифицировать блоги в теме, выполнив шаг 1 : Topic.find(18)
, Шаг 2: topic = Topic.find(18)
и шаг 3 : topic.blogs.first
. Есть ли способ удалить эту первую тему?
Ответ №1:
Вы можете использовать оба для ссылки на эти блоги:
Использование slug:
list = ['slug1', 'slug2',..]
blogs = Blog.where(slug: list)
blogs.destroy_all
Использование topic_id
list = ['topic1', 'topic2',..]
blogs = Blog.where(topic_id: list)
blogs.destroy_all
Внимание
-
slug
Я считаю, что блоги через это хороший подход, чемtopic_id
потому, что в темах может быть больше блогов, которые вы, возможно, не захотите удалять. -
В любом случае просмотрите блоги перед удалением, поскольку это необратимо.
Комментарии:
1. Я смог идентифицировать блоги в теме, выполнив шаг 1: Topic.find(18), Шаг 2: topic = Topic.find(18) и шаг 3: topic.blogs.first, а затем я смог удалить с помощью slug. Спасибо.