Ruby on Rails: Могу ли я удалить записи, используя атрибуты / столбцы, отличные от ID? - PullRequest
0 голосов
/ 21 апреля 2019

Мне нужно удалить пару постов в блоге на консоли 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 Ответ

0 голосов
/ 21 апреля 2019

Вы можете использовать оба для ссылки на эти блоги:

Использование слаг:

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, потому что темы могут иметь больше блогов, которые вы, возможно, не хотите удалятьit.

  • В любом случае просмотрите блоги перед удалением, поскольку они необратимы.

...