Witajcie!
Moje pytanie skierowane jest do tych, którzy używają DataTable w swoich railsowych apkach.
Mam dotychczas takie siermiężne rozwiązanie dotyczące usuwania rekordów z tabeli. Tj.: ostatnia kolumna “Akcje” i w niej
<%= link_to 'Delete', company_path(company.id), method: :delete, data: { confirm: "Na pewno usunąć?" } %>
lub coś na kształt tego powyżej i kontrolerze coś zbliżonego do:
def destroy
@company = Company.find(params[:id])
if @company.destroy
redirect_to companies_url, notice: 'OK'
else
flash[:alert] = 'Nie udało się usunąć'
render :index
end
end
To oczywiście działa, ale …“przeładowuje” stronę.
Chciałbym teraz to usuwanie wierszy zrobić “profi” tzn z wykorzystaniem “fnDeleteRow”. Znalazłem w necie naście różnych przykładów (bardziej i mniej egzotycznych ) i przyznaję się, że już mam mętlik w głowie.
Jak należy to poprawnie, zgodnie z duchem RoR, oprogramować?
- Przycisk widoczny w tabeli ma wyzwolić akcję w kontrolerze, tutaj ma być usunięty rekord z bazy i dodatkowo wywołać funkcję JS, która usunie wiersz z obiektu DataTable?
- Czy też może przycisk ma wyzwolić funkcję JS, a ta ma wywołać ajaxem akcję w kontrolerze usuwającą rekord z bazy i jeżeli nie ma błędu, to usunąć wiersz z obiektu DataTable?
A może jeszcze inaczej to winno być zrobione?
Podpowiedzcie proszę.
P.S.
Dane do oTable = DataTabe( {
…
})
pobieram wykorzystując ajax przy ustawionym serverSide: true