Как уничтожить / удалить Rails Active Record без столбца id? - PullRequest
0 голосов
/ 09 апреля 2019

Есть ли способ уничтожить записи активной записи Rails в таблице без и id столбца? Я знаю, что есть несколько способов уничтожить активные записи с помощью ids, например:

User.destroy(1)
User.first.destroy

Однако я не могу найти способ сделать это без id. Я проверил предложения в по этой ссылке , но безрезультатно. В идеале я имею в виду что-то вроде этого:

User.where(name: "Dummy").destroy
# Returns this:
# ArgumentError (wrong number of arguments (given 0, expected 1))

Я знаю, что обычно не рекомендуется создавать таблицы в Rails без столбца id. Хотя я хотел бы по возможности избавиться от него для этой конкретной таблицы, я хочу создать столбец, если окажется, что обходных путей нет. Заранее спасибо.

1 Ответ

3 голосов
/ 09 апреля 2019

Причина, по которой User.where(name: 'Dummy').destroy не работает, заключается в том, что User.where(name: 'Dummy') является отношением, а не отдельной записью.Если вы хотите, например, уничтожить все записи с name, равным 'Dummy', вы можете использовать destroy_all:

User.where(name: 'Dummy').destroy_all
...