2016-09-25 23 views
1

Ich benutze Rails 4.2 und verwende auch ActsAsParanoid gem, um Elemente aus der Datenbank zu löschen.Wie man link_to wiederherstellen gelöschte Objekte wiederherstellen?

ich eine Controller-Aktion zu indizieren .only_deleted Objekte erstellt habe ...

sample_controller.rb

class FlavorsController < ApplicationController 
    ... 
    def inactive 
     @flavors = Flavor.only_deleted 
     render action: :index 
    end 
    ... 
    end 

Ich bin ein partielles _flavor mit Geschmack des zu machen, und ich frage mich, wie macht man link_to Helfer anzeigen, um dieses Objekt wiederherzustellen? So etwas wie ...

<%= link_to "Recover", flavor.recover %> 
+0

Sie haben bereits die meisten Ihrer Antwort, Vielleicht müssen Sie nur eine neue Aktion zu Ihrem 'Flavors'-Controller hinzufügen, etwas wie' def recover', und in dieser Aktion, tun Sie einfach '@ flavour.recover'. Sie müssten auch eine neue Mitgliederroute für diese neue Aktion hinzufügen, und in dieser Aktion müssten Sie das '@ flavour' laden. Verwenden Sie dann die hinzugefügte Route in Ihrem 'link_to'. – fanta

+0

@fanta würden Sie bitte mit mehr Details antworten, als ich getan habe, wie Sie sagten, aber es gibt den Fehler zurück 'ActiveRecord :: RecordNotFound in FlavorsController # erholen Konnte nicht finden Flavor mit' ID '= 1 [WHERE "Aromen". " deleted_at "IS NULL]' –

+0

Klingt so, als ob Ihnen der Bereich 'with_deleted' in Ihrer Abfrage fehlt. Wie 'Flavor.with_deleted.find (params [: id])'. – messanjah

Antwort

0

Dank Fantas Kommentar konnte ich die Antwort findet ...

erstes Mitglied zur Route

resources :flavors 
    collection do 
     get 'inactive' 
    end 
    member do 
     get 'recover' 
    end 
    end 

Da ist in meinem inactive_index. html.erb Ich habe den folgenden Link hinzugefügt

<%= link_to recover_flavor_path(flavor) %> 
Verwandte Themen