Obecnie zacząłem uczyć się frameworku Ruby i Ruby on Rails. Odkryłam, że w tabeli records
mogę znaleźć zapis o ID 5 i usunąć go za pomocą następującego kodu:Dlaczego nie mogę używać Record.all.destroy w Railsach?
Record.find(5).destroy
To sprawia, że metody łańcucha I sense- celu znalezienia rekordu i zniszcz to. Jednakże, jeśli chcę, aby zniszczyć wszystkie rekordy w tabeli, polecenie logiczne byłoby dodaje, jako selektor all
wybiera wszystkie rekordy w tabeli:
Record.all.destroy
I to zwraca NoMethodError! Jestem świadomy, że mogę użyć Record.destroy_all
lub Record.delete_all
do wykonania tego zadania, jednak chciałbym wiedzieć, dlaczego nie mogę po prostu użyć najbardziej logicznego wyboru, zamiast szukać rzeczy takich jak delete_all
. Jestem nowicjuszem w tej dziedzinie, więc jest całkowicie możliwe, że brakuje tu czegoś fundamentalnego.
Dzięki za wszelkie odpowiedzi z góry.
istotnie dobre pytanie, bo najpierw wypróbowałem to samo ... Można użyć 'Record.all.each {| r | r.destroy} 'oczywiście, ale to nie jest tak logiczne jak' Record.all.destroy' –