2017-10-08 1 views
1

Ich bin neu in ActiveAdmin und Ruby on Rails. Ich habe Ressourcenname Reservierung. So reservations.rb Datei Ich habe Schaltfläche folgenden Code erstelltUpdates in der Datenbank in ActiveAdmin nach dem Klicken auf eine Schaltfläche

div class: "button" do 
button_to "Decline", :class => "btn" 
end 

nun nach diesem Knopf klicken Ich möchte nur den Wert von reservation.status ändern zu „Abgelehnt“ in der Datenbank für die Reservierung.

Ich habe folgenden Code hinzugefügt. Aber es ändert den Wert in der Datenbank nicht.

action_item :approved, only: :show do 
    link_to 'Approved', '#' 
    reservation.status="Approved" 
end 
+0

Verwenden Sie ein [Aktionselement] (https://activeadmin.info/8-custom-actions.html#action-items) –

+0

Also, wie ändere ich den Wert meiner reservation.status = "Approved" mit Aktionselement . Ich habe den folgenden Block hinzugefügt, aber es ändert nicht den Wert in der Datenbank. action_item: genehmigt, nur:: show do link_to 'Genehmigt', '#' reservation.status = "Genehmigt" Ende –

Antwort

0

Verwenden Sie eine mit einem Aktionselement verknüpfte Elementaktion. Die Aktion Element zeigt die Schaltfläche und das Element Aktion führt die Aktion, so:

action_item :approve, only: :show do 
    a 'Approve', href: approve_reservation_path(reservation) 
end 

member_action :approve do 
    reservation.update_attributes!(status: 'Approved') 
end 

Ich gebe die Dokumentation besser sein könnte und die Demo nicht enthält ein Beispiel, willkommen PRs. link_to anstelle von a ist in Ordnung. Die Angabe von patch als Methode wäre korrekter, aber nicht unbedingt notwendig.

Verwandte Themen