kontroler: def remove_all Report.destroy_all end
Jak widać chce usunąć wszystkie rekordy, ale chcę to zrobić dopiero po wciśnięciu przycisku ‘button’, a nie w momencie kiedy odświeżę stronę, dodam nowe rekordy itp.
Co do routes, mam tak owe stworzone: resources :reports do collection do post :import # zwiazane z inna metoda post :remove_all end end
Teraz tak jeśli korzystam z zapisu controller.remove_all to wpis w routes jest “nie ważny” tzn mogę go zakomentować i tak będzie działać tj usuwać.
Mogę dodać helper sam w kontolerze czyli:
w index <%= button_to "# button #" remove_all %>
w kontolerze helper_method :remove_all
Ciągle jednak nie rozwiązuje to mojego problemu.
@radwo i ja napisaliśmy co masz zrobić. Musisz do helper button_to przekazać adres akcji a Ty dalej uparcie próbujesz wywołać ją bezpośrednio w widoku.
Teraz tak jeśli korzystam z zapisu
controller.remove_all to wpis w routes jest “nie ważny” tzn mogę go zakomentować i tak będzie działać tj usuwać.
Oczywiście, że tak. Bo akcja to najzwyklejsza metoda w kontrolerze. Wpis w routes nie jest konieczny, ale pomocny bo wygeneruje Ci helper. Na upartego możesz sobie ręcznie składać ścieżki, ale nie jest to dobrą praktyką.
Proponuję byś wrzucił projekt (albo chociaż odseparowany problem) do repo.