Próbuję przekonwertować następujące zapytanie SQL do ActiveRecord i topi mój mózg.ActiveRecord: Wybierz maksimum limitu
delete from table where id <= (
select max(id) from (
select id from table order by id limit 0, 10));
Wszelkie pomysły?
Co próbuję zrobić, to ograniczyć liczbę wierszy w tabeli. Tak więc chcę usunąć wszystko, co jest mniej niż ostatnie 10 wpisów.
edytuj: Znaleziono rozwiązanie, łącząc kilka z poniższych odpowiedzi.
Temperature.where('id < ?', Temperature.order('id DESC').limit(10).pluck(:id).min).destroy_all
Pozostaje mi to z ostatnimi 10 wpisami.
Właściwie to, co próbuję zrobić, to ograniczyć liczbę wierszy w tabeli. Więc jeśli jest 11, usuń 1. 15 usuń 5. – LifeOfRPi
@LifeOfRPi Ok, myślę, że możemy to zrobić, aktualizując odpowiedź ... –